- extends
- keyof 操作符可以获取某种类型的所有键,其返回类型是联合类型
- 泛型约束,在编译阶段就可以提前发现错误,提高了程序的健壮性和稳定性
interface IWithLength { length: number // 只要传入的值,有 length属性,就符合这个约束}function echoLength<T extends IWithLength>(arg: T): T { console.log(arg.length) return arg}echoLength('str')echoLength({length: 10})echoLength([10, 20])echoLength(300) // 报错type K1 = keyof WithLength; // 'length'
给类型贴标签
class Queue { private data = [] push (item: T) { return this.data.push(item) } pop (): T { return this.data.shift() }}const queue = new Queue<number>()queue.push(100)queue.push('str') // 报错,字符串没有 toFixed方法queue.pop().toFixed()