Ale*_*lex 3 javascript arrays object typescript
值为字符串数组的对象:
const STUFF = {
abc: ["string_1", "string_2"],
def: ["string_3", "string_4"],
xyz: ["string_1", "string_2", "string_4"],
}
Run Code Online (Sandbox Code Playgroud)
如何定义只允许这些数组中的值的类型?
type StuffStr = "string_1" | "string_2" | "string_3" | "string_4";
Run Code Online (Sandbox Code Playgroud)
如果您const在 上使用断言STUFF,那么这就变成了索引问题typeof STUFF。
const STUFF = {
abc: ["string_1", "string_2"],
def: ["string_3", "string_4"],
xyz: ["string_1", "string_2", "string_4"],
} as const;
type StuffStr = typeof STUFF[keyof typeof STUFF][number];
// type StuffStr = "string_1" | "string_2" | "string_3" | "string_4"
Run Code Online (Sandbox Code Playgroud)