索引类型查询操作符keyof获取操作数的可访问索引字符串文字类型。
代码示例为:[typescript]纯文本显示复制代码接口antzone {
webname :字符串;
age :编号;
地址:字符串;
}
let type:keyof Antzone;
返回值是由现有公共属性名构成的字符串连接型,截图为以下:
在这种情况下,字符串索引形成字符串文字类型,这些文字类型合并为联接类型。
有关字符串文字类型的信息,请参阅TypeScript字符串文字类型一章。
索引类型允许编译器检查使用动态属性名称的代码。
代码示例如下: 类型纯文本显示副本代码functionfunc(obj,names )。
返回names.map (name=obj [ name ];
}
上面的代码返回对象属性子集的属性值数组。
TypeScript使用索引类型查询和索引访问操作符来提供类似的功能。
代码如下。 [typescript]纯文本显示复制代码接口antzone {
webname :字符串;
age :编号;
地址:字符串;
}
函数func (obj : t,names : k [ ] : t [ k ] ) )。
返回names.map (name=obj [ name ];
}
let antzone: Antzone={
webName: '蚁族',
age: 5,
address: '青岛市南区'
(;
letstrings=func (安腾,['webName ',' age'];
使用keyof T可以动态获取索引类型。 也就是说,向接口添加属性时,会实时获取。
这样可以很容易地检查是否向函数传递了正确的属性名称。
代码示例包括: [类型脚本]纯文本视图的复制代码letstrings=func (安腾,['webName ',' target'] ' );
由于没有target属性,发生了代码错误; 要实现此判定,请使用通用限定,具体请参阅TypeScript通用限定一章。
函数的返回类型为T[K]型数组。 有关T[K]索引访问操作符的信息,请参阅使用TypeScript keyof一章的后半部分。
查看以下代码示例,以:[typescript]纯文本格式复制代码界面antzone {
webname :字符串;
age :编号;
地址:字符串;
}
let antzone: Antzone={
webName: '蚁族',
age: 5,
address: '青岛市南区'
(;
type tp=Antzone['webName'];
let webName=antzone['webName'];
在上面的代码中,t是接口Antzone,k是字符串索引,例如' webNmae ',返回值是相应属性的数据类型,也就是Antzone对象的webName属性值的数据类型。