说明:目前网上还没有最新的TypeScript官方文档的中文翻译,所以才有这样的翻译计划。因为本人也是TypeScript的初学者,不能保证翻译100%准确。如有错误,请在评论区指出;翻译内容:暂定翻译内容为TypeScriptHandbook,其他部分翻译文档稍后补充;项目地址:TypeScript-Doc-Zh,如果对你有帮助,可以点个star~本章官方文档地址:IndexedAccessType索引访问的类型我们可以通过访问一个类型上的特定属性来获取属性的类型。这种类型称为索引访问类型。类型Person={年龄:数字;名称:字符串;alive:boolean};typeAge=Person["age"];^^^//typeAge=number索引类型本身也是一种类型,所以可以和uniontype,keyof或者其他类型组合:typeI1=Person["age"|“姓名”];^//输入I1=字符串|数字类型I2=Person[keyofPerson];^//输入I2=字符串|编号|布尔类型AliveOrName="活着"|"姓名";typeI3=Person[AliveOrName];^//输入I3=字符串|boolean如果尝试索引一个不存在的属性,将抛出一个错误:typeI1=Person["alve"];^^^^^^//类型“Person”上不存在属性“alve”。此外,我们还可以使用number来获取数组元素的类型。我们可以将它与typeof结合起来,轻松捕获数组字面量的元素类型:constMyArray=[{name:"Alice",age:15},{name:"Bob",age:23},{name:"Eve",年龄:38},];类型Person=typeofMyArray[number];^^^^^^/*类型Person={name:string;年龄:数字;}*/typeAge=typeofMyArray[number]]["age"];^^^//输入Age=number//或输入Age2=Person["age"];^^^//typeAge2=number你只能使用type作为索引,即使用const创建的变量引用不能作为索引:constkey="age";typeAge=Person[key];^^^^/*类型'key'不能用作索引类型。'key'指的是值,但在这里用作类型。您是指“typeofkey”吗?*/但是,您可以使用类型别名重写此代码:typekey="agr";typeAge=Person[key];
