1

我有一个映射键值对的对象文字。是否可以将索引签名密钥限制为预定义值的范围?

我尝试了以下方法,但使用未指定的键“c”时没有抛出错误:

let foo: { [key in 'a' | 'b']: any };

foo['c']; // no error

更新:

上面的例子在使用“noImplicitAny”时会抛出一个错误(见下面的评论)。

在我的代码中,我实际上使用的是变量而不是硬编码值,所以(我猜)Typescript 无法提前知道是否允许给定值:

let foo: { [key in 'a' | 'b']: any };

foo[someDynamicKey]; // no error
4

0 回答 0