TypeScript中AWS类型后的方括号有何用途?语法名称是什么?
TypeScript中AWS类型后的方括号语法是什么?用途是什么?
我在学习教程时,看到讲师在声明常量时于AWS类型后使用方括号,此前从未见过该写法。代码示例如下:
import type { AWS } from "@serverless/typescript"; const dynamoResources: AWS["resources"]["Resources"] = { urlTable: { Type: "AWS::DynamoDB::Table", Properties: { TableName: "${self:custom.urlTableName}", AttributeDefinitions: [ { AttributeName: "id", AttributeType: "S", }, ], KeySchema: [ { AttributeName: "id", KeyType: "HASH", }, ], BillingMode: "PAY_PER_REQUEST", }, }, }; export default dynamoResources;
请问这些方括号的用途是什么?对应的语法名称是什么,以便我进一步学习?
语法名称:索引类型查询(Indexed Access Types)
这是TypeScript里的索引类型查询语法,也常被称为类型索引访问。
核心用途
它的作用是从一个已有的复杂类型(比如这里的AWS接口类型)中,精准提取出该类型内部嵌套属性的子类型,用来给变量做类型约束:
- 精准匹配类型:
AWS["resources"]["Resources"]表示从导入的AWS类型里,先取resources属性对应的类型,再从这个类型里取Resources子类型。这个子类型正是Serverless框架定义的CloudFormation资源结构类型。 - 保证类型安全:给
dynamoResources指定这个类型后,TypeScript会自动校验变量的结构是否符合CloudFormation资源的要求——比如你要是写错Type字段的值、漏填KeySchema里的必要属性,编辑器会直接抛出类型错误,帮你提前规避配置问题。
简单说,就是用方括号“钻”进复杂类型的内部,把你需要的那部分子类型“掏出来”用,既复用了已有的类型定义,又能严格约束变量结构。
内容的提问来源于stack exchange,提问作者Joan
相关产品推荐
相关产品推荐

