簡體   English   中英

TypeScript中數組的接口鍵

[英]Interface keys from array in TypeScript

有沒有辦法強制從字符串數組中使用接口的鍵:

例如,如果我們有以下數組:

const myArray = ['key1', 'key2'];

我想創建一個名為MyInterface的新接口,它將強制所有myArray條目成為對象鍵:

const myObj: MyInterface = {
  'key1': true,
  'key2': false,
}

您可以為此目的使用keyof運算符。

interface MyInterface {
  key1: boolean;
  key2: boolean;
}

const myObj: MyInterface = {
  key1: true,
  key2: false,
}

const myArray: Array<keyof MyInterface> = ['key1', 'key2'];
// or ...
const myOtherArray: Array<keyof typeof myObj> = ['key1', 'key2'];

你也可以像這樣倒退

const myArray = ['key1', 'key2'] as const;

type MyType = Record<typeof myArray[number], boolean>;

const myObj: MyType = {
  key1: true,
  key2: false,
}

暫無
暫無

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

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