- Hands-On Full Stack Web Development with Angular 6 and Laravel 5
- Fernando Monteiro
- 261字
- 2021-07-23 19:18:51
Creating generic functions
Generics are a very useful way of creating flexible classes and functions. They are very similar to those used in C#. It's very useful to be used in more than one place.
We can create generic functions by adding angle brackets after the function names and enclosing datatypes, as in the following example:
function genericFunction<T>( arg: T ): T [] {
let myGenericArray: T[] = [];
myGenericArray.push(arg);
return myGenericArray;
}
Note that the t inside the angle brackets (<t>) means that genericFunction() is of the generic type.
Let's see this in practice:
- In your code editor, create a new file called generics.ts, and add the following code:
function genericFunction<T>( arg: T ): T [] {
let myGenericArray: T[] = [];
myGenericArray.push(arg);
return myGenericArray;
}
let stringFromGenericFunction = genericFunction<string>("Some string goes here");
console.log(stringFromGenericFunction[0]);
let numberFromGenericFunction = genericFunction(190);
console.log(numberFromGenericFunction[0]);
Let's see what happens with our generic function.
- Go back to your Terminal and type the following command:
tsc generics.ts
- Now, let's execute the file with the following command:
node generics.js
We will see the following result:
Some string goes here
190
Note that the compiler is able to identify the datatype that we are passing as the function argument. In the first case, we explicitly pass the argument as a string, and in the second case, we pass nothing.
Although the compiler is able to identify the type of argument that we are using, it is important to always determine what kind of data we are going to pass. For example:
let numberFromGenericFunction = genericFunction<number>(190);
console.log(numberFromGenericFunction[0]);
- 物聯網標準化指南
- 物聯網工程規劃技術
- JBoss EAP6 High Availability
- 面向物聯網的嵌入式系統開發:基于CC2530和STM32微處理器
- 正在爆發的互聯網革命
- SSL VPN : Understanding, evaluating and planning secure, web/based remote access
- 電力物聯網工程技術原理與應用
- React Cookbook
- 網絡工程實施技術與方案大全
- AIoT應用開發與實踐
- Microsoft Power Platform Enterprise Architecture
- 5G技術核心與增強:從R15到R17
- Guide to NoSQL with Azure Cosmos DB
- 物聯網與智慧農業
- 現場綜合化網絡運營與維護:運營商數字化轉型技術與實踐