An illustration of object destructuring using multiple arguments in rest notation

Here's a snippet of code that I've been working on:

onFilterChange = ({name}: {name: string}) => {
    console.log(`entered onFilterChange and name is ${name}` );
}

When there's only one argument, everything runs smoothly.

However, when I try to add another argument:

onFilterChange = ({name}: {name: string}, {value}: {value: string}) => {
   console.log(`entered onFilterChange and name is ${name} and value is ${value}` );
        }

Even though it compiles without any errors, at runtime, I encounter the following error: TypeError: _b is undefined

The function above is called like this:

this.props.onChange({name, value});

Is there something obvious that I'm missing here? All the examples I've come across online just have one argument -- which seems to work fine. Thanks for your help!

Answer №1

The signature you have defined does not match the way you are invoking the function. You can rectify this by choosing one of the following options:

// Modify the way you invoke the function to match the signature:
onFilterChange = ({name}: {name: string}, {value}: {value: string})
onFilterChange({name}, {value}) <-- pass as separate arguments

Alternatively,

// Update the signature to accept a single argument:
onFilterChange = ({name, value}: {name: string, value: string})
onFilterChange({name, value}) <-- pass as a single argument

Answer №2

Correcting the object destructuring syntax is important in this scenario. Since the function expects only one argument, which is an object containing the attributes name and value, you should structure it in this manner:

onFilterChange = ({name, value}: {name: string, value: string }) => {
   console.log(`Executing onFilterChange with name as ${name} and value as ${value}`);
}

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Error with SwitchMap on ActivatedRoute.paramMap

When I try to run the ngOnInit method of my component, I encountered an error with the following line of code. this.products$ = this.route.paramMap.switchMap((params: ParamMap) => this.getProductsForType(params.get('type'))); The error mes ...

Is there a way to seamlessly integrate expect() with regular promises in protractor promise sequences?

As I dive into the world of promises in protractor, I find myself puzzled by the execution order, especially when mixing non-protractor promises with protractor promises. My goal is to troubleshoot and resolve some inconsistent protractor tests at my workp ...

Storing file paths as string variables in Angular: a quick guide

I'm working with this line of code that selects all the files in a folder. <input type="file" id="filepicker" name="fileList" (change)="saveFolderLocation($event)" webkitdirectory/> My goal is to determin ...

Ensuring the visibility of a child entity post soft deleting its parent entity in TypeORM

Here are the entities I am working with: class Parent extends BaseEntity{ @Column() name:string @OneToMany( ()=>Child, (Child)=>Child.Parent ) Child:Child[] @DeleteDateColumn() ...

I am having trouble with a property that I believe should be recognized but is not

Here is the vocabulary I am working with: type MyHeaders = { Authorization: string; Accept: "application/json"; }; type MyGetOptions = { url: string; json: true; }; type MyOptionsWithHeaders = { headers: MyHeaders; }; type MyPostOptions ...

Managing Keyboard Input in React using TypeScript

Hey there! I'm currently working on a method that should automatically insert a specific string into a textbox when a particular key is pressed. The key in question is a non-printable character that may not be visible in most font styles, but can sti ...

Accessing attributes of a parent class object from within a child object

Imagine having four tabs within an Angular component, each with its own set of criteria for being displayed. Here's a high-level overview of the scenario. export class DisplayTabs { foo: true; bar: false; tabs: { 'A': { order: 1, g ...

Tips for incorporating flow and TypeScript typings into an NPM module

Are there any resources available for adding both flow and typescript typings to an NPM module at the same time? I've been struggling to find a comprehensive guide on this topic, and it seems to be a common issue faced by open source library maintain ...

Encountering an error in Angular where the property does not exist in type

Struggling to create a collapsible menu within my header component in an Angular project, I've hit a snag with proper JSON formatting. The error message that keeps popping up reads: Error: src/app/components/header/header.component.html:48:49 - error ...

Angular 6 - Ensuring all child components are instances of the same component

My issue has been simplified: <div *ngIf="layout1" class="layout1"> <div class="sidebar-layout1"> some items </div> <child-component [something]="sth"></child-component> </div> <div *ngIf="!layout1" class= ...

Using ReactJS with Typescript: attempting to interpret a value as a type error is encountered (TS2749)

Currently, I am working on coding a ReactJS class using Typescript and Material-ui in a .tsx file. In one of the custom components that I have created, I need to establish a reference to another component used within this custom component. export class My ...

Utilizing absolute imports in Typescript directory structure

Our team has a preferred structure for organizing React code, which looks like this: components/ button.tsx slider.tsx index.ts helpers/ math.ts auth.ts index.ts constants/ config.ts api.ts index.ts In this setup, each ...

Executing a Function in a Service from a Component in Angular/TypeScript and Receiving a Return Value

I need guidance on how to effectively utilize the "getUserDocInfo()" function from a separate service within my component. How can I call this function and then leverage the data it returns for further operations? Component Example getToken(){ this. ...

Ways to successfully transfer values or variables from within onAuthStateChanged

Currently, I am attempting to retrieve the authenticated user's uid from Google authentication for a specific collection in the "User" document. To ensure that the data does not become null after refreshing the webpage, I am utilizing onAuthStateChang ...

Sharing information from Directive to Component in Angular

Here is a special directive that detects key strokes on any component: import { Directive, HostListener } from '@angular/core'; @Directive({ selector: '[keyCatcher]' }) export class keyCatcher { @HostListener('document:keydo ...

Having trouble writing Jest test cases for a function that returns an Observable Axios response in Nest JS

I'm relatively new to the NestJS + Typescript + RxJs tech stack and I'm attempting to write a unit test case using Jest for one of my functions. However, I'm uncertain if I'm doing it correctly. component.service.ts public fetchCompon ...

Mastering the art of duplicating an array of objects in TypeScript

I attempted the following strategy: this.strategies = []; this.strategiesCopy = [...this.strategies]; Unfortunately, it appears this method is not effective as it results in duplicates. ...

Tips for adjusting HighCharts layout with highcharts-vue integrations

I have a fairly simple component: <template> <div> <chart v-if="!loading" ref="priceGraph" constructor-type="stockChart" :options="chartData" ...

Is it possible for me to make the default export anonymous?

Why bother naming the export if you already have a file with the default export name? This seems redundant and goes against the DRY principle. While there is a rule that discourages anonymous default exports, how can we enforce an error when someone does ...

Having trouble accessing functions in Typescript when importing JavaScript files, although able to access them in HTML

Recently, I started incorporating TypeScript and React into my company's existing JavaScript code base. It has been a bit of a rollercoaster ride, as I'm sure many can relate to. After conquering major obstacles such as setting up webpack correc ...