代码之家  ›  专栏  ›  技术社区  ›  Alexander Zeitler

具有动态属性的类型定义

  •  0
  • Alexander Zeitler  · 技术社区  · 4 年前

    {
      "_embedded": {
        "Customers": [{ "CompanyName": "AWS" }]
      }
    }
    

    另一个可能是这样的:

    {
      "_embedded": {
        "Products": [{ "SKU": "ABC123" }]
      }
    }
    

    所以除了里面的属性名之外,它总是相同的结构 _embedded

    我试图实现的是创建一个TypeScript类型别名,如下所示:

    type MyType<T> = {
      _embedded: {
        Customers: Array<T>
      }
    }
    

    我可以将数组中使用的类型设置为泛型,但不知道是否可以将数组中属性的名称设置为泛型 _嵌入式 ( Customer

    1 回复  |  直到 4 年前
        1
  •  2
  •   Alexander Zeitler    4 年前

    这是我基于 kaya3's comment :

    type MyType<T, K extends string> = {
      _embedded: Record<K, T>
    }
    

    可以这样使用:

    const x: MyType<Array<Customer>>, 'customers'> = { 
      _embedded: { customers: [] }
    }
    
    推荐文章