泛型;软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。在像C#和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。 这样用户就可以以自己的数据类型来使用组件。
// 在函数中使用泛型
function identify<T>(arg: T): T {
return arg;
}
// 可以明确指定类型
console.log(identify<string>('string'));
// 交给ts推断类型
console.log(identify(true));
// 在接口中使用泛型
interface GenericIdentify<T> {
(arg: T): T;
}
function identify<T>(arg: T): T {
return arg;
}
let myIdentify: GenericIdentify<number | string> = identify;
// 可以明确指定类型
console.log(myIdentify('my-string'));
// // 交给ts推断类型
console.log(myIdentify(30));
// 为泛型添加约束
function getLength<T extends number>(obj: T): any {
return obj;
// return obj.length;
}
const obj = {
name: '邓紫棋',
age: 30,
length: 10
};
const obj = 25;
console.log(getLength(obj));