【发布时间】:2016-05-06 18:06:10
【问题描述】:
我想创建一个强制使用字符串作为键的对象接口,但是 TypeScript 编译器会传递代码,即使它有一个数字类型作为键。为什么?
例如,
interface PriceI {
[key:string]:number;
}
var coursePrice: PriceI = {};
coursePrice["Orange"] = 100;
coursePrice["Apple"] = 200;
coursePrice[3]=200; // It should be compile error, but it pass
coursePrice[true]=300; // It's compile error
【问题讨论】:
-
typescript 中的静态类型是 javascript 的高度动态特性和大多数强类型语言中严格的类型强制之间的折衷。我自己更喜欢更严格的 TS,但是设计者害怕吓跑来自 JS 的人。
标签: javascript typescript