如何限制Typescript索引签名的密钥

时间:2019-04-24 10:14:01

标签: javascript typescript types index-signature

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

我尝试了以下操作,但是使用未指定的键“ c”时不会引发任何错误:

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

foo['c']; // no error

已更新:

上面的示例 在使用“ noImplicitAny”时将引发错误(请参见下面的评论)。

在我的代码中,我实际上使用的是变量而不是硬编码的值,所以(我想)打字稿无法预先知道是否允许给定值:

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

foo[someDynamicKey]; // no error

0 个答案:

没有答案