跳到主要内容

泛型

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:'呵呵'
}