我有一个映射键-值对的对象文字。是否可以将索引签名密钥限制为预定义值的范围?
我尝试了以下操作,但是使用未指定的键“ c”时不会引发任何错误:
let foo: { [key in 'a' | 'b']: any };
foo['c']; // no error
已更新:
上面的示例 在使用“ noImplicitAny”时将引发错误(请参见下面的评论)。
在我的代码中,我实际上使用的是变量而不是硬编码的值,所以(我想)打字稿无法预先知道是否允许给定值:
let foo: { [key in 'a' | 'b']: any };
foo[someDynamicKey]; // no error