Typescript 如何将字符串参数限制为某个键值

Typescript 如何将字符串参数限制为某个键值,typescript,Typescript,我正在使用数组。TypeScript中的一些函数。我需要限制作为某个对象的键接收的可能字符串 表单示例我有一个数组,其中包含一些对象属性的名称,并且我的对象实现了一个接口: const props=[“a”、“b”、“c”] 接口A{ a:有吗, b:有吗, c:有吗 } 然后我调用some函数 props.some( (prop) => { // ... }) 我试过: props.some( (prop: keyof A) => {

我正在使用
数组。TypeScript中的一些
函数。我需要限制作为某个对象的键接收的可能字符串

表单示例我有一个数组,其中包含一些对象属性的名称,并且我的对象实现了一个接口:

const props=[“a”、“b”、“c”]
接口A{
a:有吗,
b:有吗,
c:有吗
}
然后我调用some函数

    props.some( (prop) => {
        // ...
    })
我试过:

    props.some( (prop: keyof A) => {
        // ...
    })
但我收到了“类型字符串不能分配给类型keyof A”


这通常是如何解决的?

在定义数组时,将其定义为const
,将其类型化为元组,其成员都是a的键,这样它就不会自动扩展到
字符串[]

const props = ["a", "b", "c"] as const;
然后


prop
键入为
'a'|'b'|'c'
定义数组时,将其定义为const
,使其键入为元组,元组的成员都是a的键,这样它就不会自动加宽为
字符串[]

const props = ["a", "b", "c"] as const;
然后

prop
键入为
'a'|'b'|'c'