如何指定函数参数是接口的键之一? [重复]

问题描述 投票:0回答:1

在 TypeScript 中,我想确保

myFunction
的参数是
MyInterface
的键之一。也就是说,我想要对下面指定的
arg
进行类型检查。

export interface MyInterface {
  option1: boolean;
  option2: boolean;
  option3: boolean;
  option4: boolean;
}


myFunction(arg: 'option1' | 'option2' | 'option3' | 'option4'): void {
    console.log("arg:",option)
}

我知道我可以使用

let myVar : keyof typeof obj
输入变量作为对象的键之一,如此处所述。接口可以做类似的事情吗?有没有办法在不进行硬编码的情况下获得上述行为
'option1' | 'option2' | ...
? 即,精神上类似于
arg: in MyInterface.keys

typescript
1个回答
1
投票

是的,您可以使用

keyof
类型运算符

function myFunction(arg: keyof MyInterface): void {
  console.log("arg:", arg);
}

Playground 代码链接

© www.soinside.com 2019 - 2024. All rights reserved.