You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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接口类型)中,精准提取出该类型内部嵌套属性的子类型,用来给变量做类型约束:

  1. 精准匹配类型:AWS["resources"]["Resources"]表示从导入的AWS类型里,先取resources属性对应的类型,再从这个类型里取Resources子类型。这个子类型正是Serverless框架定义的CloudFormation资源结构类型。
  2. 保证类型安全:给dynamoResources指定这个类型后,TypeScript会自动校验变量的结构是否符合CloudFormation资源的要求——比如你要是写错Type字段的值、漏填KeySchema里的必要属性,编辑器会直接抛出类型错误,帮你提前规避配置问题。

简单说,就是用方括号“钻”进复杂类型的内部,把你需要的那部分子类型“掏出来”用,既复用了已有的类型定义,又能严格约束变量结构。

内容的提问来源于stack exchange,提问作者Joan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 00:01:39