如何在typescript中要求参数是特定的字符串值?
例如:
const obj = { a: 1, b: 2, c: 3, }; interface Props { x: Object.keys(obj); // instead of 'a' | 'b' | 'c' } const foo = (x: Props) => console.log(x);
你可以使用 typeof 运算符首先获取 obj 然后 keyof 获取对象键的运算符( "a" | "b" | "c" )
typeof
obj
keyof
"a" | "b" | "c"
const obj = { a: 1, b: 2, c: 3 }; interface Props { x: keyof typeof obj; } const foo = (x: Props) => console.log(x);
TypeScript Playground