typescript 泛型
泛型
基本
function add<t>(arg1: T, arg2: T): T {
return arg1 + arg2
}
// add<number>(1,'0') X
泛型接口
function add<T>(arg1:T,arg2:T):T {
return arg1 + arg2
}
//===
let student : string
let addFunc: <T>(arg1:T, arg2:T) => T
// ===
interface GenAdder <T>(arg1:T, arg2:T) => T
// interface GenAdder {<T>(arg1:T, arg2:T): T}
let addFunc: GenAdder
addFunc = add
addFunc<number>(1,2)
// ===
let addFunc:GenAdder<string>
addFunc(1,2) X
addFunc('1','2') √
泛型类
class Adder {
add: <T>(arg1: T, arg2: T) => T
}
function add(arg1, arg2) {
return arg1 + arg2
}
const adder = new Adder<number>()
adder.add = add
adder.add(1, 2)
const stringAdder = new Adder<string>()
stringAdder.add = add
stringAdder.add('1', '2')
泛型约束
interface ILength {
length: number
}
function getLength<T extends ILength>(arg: T): T {
console.log(arg.length)
return arg
}
getLength<boolean>(false)
getLength<string>('xiaozhang')
function getProperty<T, K extends keyof T>(obj: T, key: K) {
return obj[key]
}
// keyof
const people = { name: 'xiaozhang', age: 16 }
let keys: keyof typeof people
本文作者:guangzan
本文链接:https://www.cnblogs.com/guangzan/p/13275326.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步