在TypeScript中,我试图使用for (let x in obj)循环,但是TypeScript编译器没有正确识别x的类型.它总是假设它是string类型的。在下面的示例中,正确地检测到obj循环外的for类型。TypeScript编译器将其识别为number。但是,当obj应该是number时,for循环中的string就会被识别为string。.
// TypeScript</em
我在TypeScript中有一个字符串枚举,我想像下面这样迭代它。但是,当我这样做时,迭代器的类型是一个字符串,而不是枚举类型。cipher[letter] = 'test'; // error: letter is of type 'string' but needs to be 'Enum'
} 我得到的确切错误是:a parameter of type 'string
TypeScript使用“结构子类型”来确定两种类型是否兼容,这允许我做一件令人惊讶的事情,比如:}
class Vegetable extends Food请注意,上述代码段在取消注释、doFruitThings()方法和类型变得结构不兼容之前不会发出编译器错误。但是-我希望更喜欢编译器检测到我的Vegetable不是Fruit的,尽管它们目前共享相同的属性/函数。我正处于设计API</