欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

TS里的简易通用类型精华(快速学会)

最编程 2024-07-27 20:33:53
...

???? 2.1 指定更加具体的类型

如下所示在创建泛型函数时,可以给函数接收的参数和返回的值定义为Type类型的数组,即缩小了泛型的范围;

const fn<Type> = (values: Type[]): Type[] => {
	return values
}

???? 2.2 添加约束

如下所示,Type 使用 extends 关键字继承了 ILength 接口的类型,即传入的类型必须有 length 属性;

// 创建一个接口
interface ILength { length: number }
const fn<Type extends ILength> = (values: Type): Type => {
	return values
}

???? 2.3 多个变量类型的约束

如下所示,泛型变量可以有多个,并且 Key 变受量 Type 变量的约束,keyof实际上是获取person对象中的键值的联合类型即:‘name’ | ‘age’;

const fn<Type , Key extends keyof Type > = (obj: Type, key: Key) => {
return obj[key]
}
let person = { name: 'jack', age: 18 }
getProp(person, 'name')