What is Parameter Destructuring in TypeScript ?
Last Updated :
10 Apr, 2024
Parameter destructuring in TypeScript is a way to extract values from objects or arrays passed as function parameters, making it easier to work with their properties or elements directly within the function body.
There are several methods through which parameter destructuring is achieved in TypeScript which are as follows:
Object Destructuring
When we're working with objects, we can destructure the object directly within the function parameters. This is useful when we want to extract specific properties from the object.
Syntax:
function functionName({ propertyName1, propertyName2 }: { propertyName1: type1, propertyName2: type2 }) {
// Function body
}
Example: A function `printUser` logs the name and age of a user object, defined with name "Alice" and age 25, passed to it.
JavaScript
function printUser({ name, age }
: { name: string, age: number }) {
console.log(`Name: ${name}, Age: ${age}`);
}
const user =
{
name: "Alice",
age: 25
};
printUser(user);
Output:
[LOG]: "Name: Alice, Age: 25"
Array Destructuring
If one function receives an array as a parameter, we can destructure the array directly within the function parameters. This allows us to extract specific elements from the array.
Syntax:
function functionName([variable1, variable2, ...]: ArrayType) {
// Function body
}
Example: A function `printValues` extracts two values from an array of numbers and logs them. An array `[10, 20]` is defined and passed to the `printValues` function, printing "Value 1: 10, Value 2: 20" to the console.
JavaScript
function printValues([value1, value2]: number[])
{
console
.log(`Value 1: ${value1}, Value 2: ${value2}`);
}
const values: number[] = [10, 20];
printValues(values);
Output:
[LOG]: "Value 1:10, Value 2: 20"
Rest Parameters
Rest parameters in TypeScript allow functions to accept an indefinite number of arguments as an array. Think of them like a catch-all bucket for any extra arguments we might pass to a function. Instead of specifying every possible argument individually, we can use the rest parameter syntax, which is represented by three dots (...) followed by the name of the parameter. This lets you gather up any remaining arguments into an array, making your function more flexible and capable of handling varying numbers of inputs.
Syntax:
function functionName(param1: Type, ...restParams: Type[]) {
// Function body
}
Example: A function `sum` calculates the sum of multiple numbers, including a first number followed by an arbitrary number of additional numbers. The function is called with parameters `1, 2, 3, 4, 5`, resulting in the sum `15` logged to the console.
JavaScript
function sum(firstNumber: number, ...remainingNumbers: number[]) {
let total = firstNumber;
for (const num of remainingNumbers) {
total += num;
}
return total;
}
console.log(sum(1, 2, 3, 4, 5));
Output:
[LOG]: 15
Default Values
TypeScript allows us to provide default values for destructured parameters. This is useful when we want to provide values if a property or element is missing.
Syntax:
function functionName(param1: Type = defaultValue1, param2: Type = defaultValue2) {
// Function body
}
Example: The`greet` function logs a greeting message, defaulting to "Bishal Paul" if no name is given. It's called twice, first without a name and then with "GeeksforGeeks".
JavaScript
function greet(name: string = "GeeksforGeeks") {
console.log(`Hello, ${name}!`);
}
greet();
greet('GeeksforGeeks');
Output:
[LOG]: "Hello, GeeksforGeeks!"
Similar Reads
What is the Function type in TypeScript ?
TypeScript is a JavaScript-based programming language with a typed syntax. It provides improved tools of any size. It adds extra syntax to JavaScript. This helps in facilitating a stronger interaction between you and your editor. It also helps in catching the mistakes well in advance. It uses type i
3 min read
What is Declaration Merging in Typescript ?
In Typescript, the term "declaration merging" refers to the compiler combining two declarations with the same name into a single definition. Both of the initial declarations are present in this combined definition. It is possible to merge Interfaces, namespaces and enums and so on but classes cannot
3 min read
How tuple destructuring works in TypeScript ?
Tuples in TypeScript are basically a simple Array with definite length and definite Data-type. Destructuring means breaking the structure. In this article we will see how Destructuring of tuple in TypeScript work. Destructuring is simply breaking up into part and assigning to variables. Tuple elemen
3 min read
What is Type Erasure in TypeScript?
TypeScript is a very mighty superset of JavaScript, which adds static typing to the language and allows developers to catch errors early on as well as write more maintainable code. This being said a TypeScript type system erases type information at compile time (or during the compilation), a phenome
4 min read
What is Type Annotations in TypeScript ?
TypeScript Type Annotations allow developers to explicitly define the types of variables, functions, and other elements in the program. They help catch mistakes early by ensuring the right data type is used.They make the code easier to understand and follow.Type Annotations help avoid errors and mak
3 min read
What is Recursive Generic in TypeScript ?
In TypeScript, a recursive generic is a type that refers to itself within its definition, enabling the creation of data structures or types containing references to the same type within their structure. This capability proves invaluable when dealing with nested or hierarchical data structures like t
4 min read
Parameter Destructuring
Destructuring in JavaScript is used to unpack or segregate values from arrays or properties from object literals into distinct variables, thus it allows us to access only the values required. When only certain properties of an object or specific indexed array elements are to be used or considered wi
5 min read
TypeScript Generic Parameter Defaults
TypeScript Generic Parameter Defaults allow you to specify default values for generic type parameters. This feature provides a fallback type when no explicit type argument is given, making generic types more flexible and easier to use, particularly when type inference is not straightforward. Syntaxf
4 min read
What is Type Predicates in Typescript ?
In this article, we are going to learn about the type predicates in Typescript. TypeScript is a statically typed programming language that provides many features to make your code more efficient and robust. Type predicates in TypeScript are functions that return a boolean value and are used to narro
3 min read
Getting Started with TypeScript
TypeScript is an open-source programming language developed by Microsoft that extends JavaScript by adding optional static typing to the language. It aims to make JavaScript development more scalable and maintainable, especially for large-scale projects. TypeScript code is transpiled into JavaScript
4 min read