泛型
TypeScript
可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。 这样用户就可以以自己的数据类型来使用组件。
泛型分类
类泛型
class Person<T>{
name:T;
say(argu:T):T{
return argu;
}
}
const person = new Person<string>();
person.name = '柏拉图';
person.say('柏拉图');
函数泛型
function func<T>(argu:T):T{
return argu;
}
const result = func<string>('柏拉图');
console.log(result);
接口泛型
interface Length<T>{
length:T
}
const attr:Length<number> = {
length:3
}
别名泛型
type Data<T> = {
code: number;
msg: string;
data:T
}
const result : Data<string[]> = {
code:200,
msg:'发送成功',
data:['哈哈']
}
泛型继承
继承基础类型
interface Status<T extends number | string> {
fulfilled: T;
}
const s: Status<number> = {
fulfilled: 3
}
继承接口类型
interface Status1 {
pending:string;
}
interface Status2<T extends Status1> {
fulfilled:T;
}
const s : Status2<{pending:string}> = {
fulfilled:{
pending:'哈哈哈'
}
}
泛型默认值
interface Status<T = string> {
pending:T;
fulfilled:T;
rejected:T;
}
const s : Status = {
pending:'哈哈',
fulfilled:'嘻嘻',
rejected:'呵呵'
}