簡體   English   中英

如何創建一個將其值作為其類型的數組?

[英]How can I create an Array that has its values as its type?

如何編寫以下邏輯但不重復 Array 類型的鍵?

type UserFillable = [
  'first_name',
  'last_name',
  'email',
  'sector',
]

export default class User {
  public static readonly fillable: UserFillable = [
    'first_name',
    'last_name',
    'email',
    'sector',
  ]
}

另一個例子是......

export default class User {
  public static readonly fillable = [
    'first_name',
    'last_name',
    'email',
    'sector',
  ] as [
    'first_name',
    'last_name',
    'email',
    'sector',
  ]
}

我建議您使用const斷言來要求編譯器為您正在初始化的屬性推斷出最具體的類型:

export default class User {
    public static readonly fillable = [
        'first_name',
        'last_name',
        'email',
        'sector',
    ] as const
}

這將自動成為您要查找的字符串文字類型readonly元組

// (property) User.fillable: readonly 
//   ["first_name", "last_name", "email", "sector"]

您可能不再需要定義UserFillable類型,但如果您這樣做,最好根據User.fillable來定義,反之亦然:

type UserFillable = typeof User.fillable;

Playground 代碼鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM