typescript 泛型

Posted guangzan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于typescript 泛型的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 Typescript 泛型中使用 '&'

TypeScript 入门14.泛型

TypeScript专题之泛型

TypeScript 中泛型的不安全隐式转换

TypeScript——泛型

Typescript 别名泛型接口