编辑
2023-03-26
TypeScript
0
请注意,本文编写于 531 天前,最后修改于 515 天前,其中某些信息可能已经过时。

目录

字面量类型
说明
分类
字符串字面量类型
数字字面量类型
布尔值字面量
索引类型
用途
索引类型的操作符
查询操作符
语法
说明
索引访问操作符
语法
说明
索引类型EG

字面量类型

说明

在TS中字面量不仅可以表示值,还可表示类型

TS支持3种字面量类型:字符串字面量类型、数字字面量类型、布尔字面量类型

分类

字符串字面量类型

可以使用一个字符串字面量作为变量的类型
应用场景: 将多个字面量类型组合成一个联合类型

相当于string类型的子集

字符串字面量类型

数字字面量类型

和字符串字面量类型一样

数字字面量类型

布尔值字面量

布尔字面量只包含true和false,true | false 的组合类型跟直接使用boolean没有区别

布尔值字面量类型

索引类型

用途

获取对象的值建立一个集合

索引类型的操作符

查询操作符

语法
ts
keyof T
说明

表示类型为类型T的所有公共属性的字面量构成的联合类型

interface Prople { name: string age: number } let a:keyof Prople //此时a的类型为类型Prople的所有公共属性的字面量(name,string)构成的联合类型 "name" | "age"

索引访问操作符

语法
ts
T[K]
说明

表示对象T的属性K所代表的类型

interface Prople { name: string age: number } let b:Prople["age"] //此时b的类型为Prople的属性K所代表的的属性 number

索引类型EG

ts
let obj = { a: 1, b: 2, c: 3 } function getValues<T,K extends keyof T>(obj: T, keys: K[]): T[K][] { return keys.map(key => obj[key]) } console.log(getValues(obj,["a","b","c"])) console.log(getValues(obj,["a","b","d"]))//error 不能将类型“"d"”分配给类型“"a" | "b" | "c"”

本文作者:RKLS

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!