Typescript force当作为关联数组处理时检查对象中的属性

时间:2017-06-07 15:32:55

标签: typescript

更好地解释一下,例如我说:

class Model{
    property1: number;
    property2: number;
}

let model= new Model;

当我这样做时

model [“property1”] =“sdaef”//好!打字稿检查并知道它应该是数字并给出错误

var test = model.nonExistingProp //抛出错误,因为该属性不存在,这是好的

现在问题

    var test = model["nonExistingProp"]; // NO ERRORS ??   

我很想知道,因为知道字符串属性(关联数组)及其类型为什么不像前面的例子那样抛出错误并说出nonExistingProp是否足够聪明,有没有办法强制这种类型检查关联数组,因为它已经知道属性并检查了类型,如第一个例子??

由于

1 个答案:

答案 0 :(得分:1)

TypeScript足够智能,但这是一项传统功能,当索引到对象时被用作绕过类型检查器的一种形式。

但是,如果您使用--noImplicitAny(除了其他--strict标志),您将获得更安全的检查,TypeScript将在该表达式上给出错误。

对于记录,团队在--strict标志下放置的标志是团队认为可以为您提供更好的编辑体验的东西。错误检查。