泛型是在定义函数、类、接口时不指定具体类型,而在使用时再指定具体类型的一种特性。在TypeScript中,泛型可以让代码更加灵活和复用性更强。
在定义泛型函数时,可以使用<T>
来表示泛型类型,并在函数参数或返回值中使用该类型。
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>("hello");
泛型接口可以用于定义接口中的属性或方法的数据类型。
interface GenericIdentityFn<T> {
(arg: T): T;
}
function identity<T>(arg: T): T {
return arg;
}
let myIdentity: GenericIdentityFn<number> = identity;
let result = myIdentity(123);
泛型类可以用于定义类中的属性或方法的数据类型。
class GenericNumber<T> {
zeroValue: T;
add: (x: T, y: T) => T;
}
let myGenericNumber = new GenericNumber<number>();
myGenericNumber.zeroValue = 0;
myGenericNumber.add = function(x, y) { return x + y; };
可以使用泛型约束来限制泛型的类型。
interface Lengthwise {
length: number;
}
function loggingIdentity<T extends Lengthwise>(arg: T): T {
console.log(arg.length);
return arg;
}
loggingIdentity({ length: 10, value: 3 });
以上是泛型的基础使用方法,通过泛型可以更好地重用代码、增强代码的灵活性和安全性。在实际开发中,可以根据需求灵活运用泛型来提高代码质量和效率。
Copyright © Yisu Cloud Ltd. All Rights Reserved. 2018 版权所有
广州亿速云计算有限公司 粤ICP备17096448号-1 粤公网安备 44010402001142号 增值电信业务经营许可证编号:B1-20181529