在 Typescript 中如何指定函数参数是接口的键之一

问题描述 投票: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)
}

有没有办法在不进行硬编码的情况下获得这种行为

'option1' | 'option2' | ...
? Typescript 是否允许类似于
arg: in MyInterface.keys
的精神?

typescript
1个回答
0
投票

是的,您可以使用

keyof
类型运算符

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

Playground 代码链接

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