TS:泛型
1. 前言
-
有时候,我们想让一个函数的参数和返回类型是相同的,就可以使用类型变量。
-
类型变量是一种特殊的变量,用于表示类型而不是值。
function identity<T>(arg : T) : T{ return arg; }
-
定义了泛型函数后,可以用两种方法使用。
-
一种是传入所有的参数,包括类型参数:
let out = identity<string>("yivi");
-
另一种是使用类型推论——即编译器会自动推断类型:
let out = identity("yivi");
-
类型推论帮助我们保持代码精简和高可读性。
2. 泛型变量
-
来看看一个例子:
function foo<T>(arg : T): T{ console.log(arg.length); // error,arg的类型为T,无明确指示方法,因此报错。 return arg; }
-
当我们想操作T类型的数组时,
.length
的属性是存在的,因此不会报错:function foo<T>(args : T