当输入为 [key: string] 时,Typescript 不会检查对象属性是否存在

我将对象的对象键入为:


export interface ObjectInterface {

  [key: string]: SomeOtherObjectInterface;

}

然后假设我有这样的对象:


const obj: ObjectInterface = {

   a: ...,

   b: ...,

}

然后,当我想访问某些对象属性时,它不是类型安全的:


const x = obj.dsdssdsdsds;

我的IDE没有任何错误。


当我从中删除类型时,obj它会正确抛出错误。在这里可以做什么来使用我们的类型,但仍然会出现类似的错误Property 'dsds' does not exist on type......


慕勒3428872
浏览 128回答 1
1回答

qq_遁去的一_1

Typescript4.1-beta已经解决了这个问题。这是一个新选项:--noUncheckedIndexedAccess。启用后noUncheckedIndexedAccess会将 undefined 添加到类型中任何未声明的字段。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript