【发布时间】:2016-09-05 12:31:33
【问题描述】:
TypeScript 的类型系统使用 类型注解,如下所示:
private currentState: IAppState;
我把它读作“currentState 是一个 IAppState”
为什么这种语法比我习惯的其他强类型语言更具有设计意义?
private IAppState currentState;
我知道 TypeScript 应该是 JavaScript 语法的扩展,但在这种情况下,是什么让 TypeScript 的设计者选择了当前的语法:
private IAppState: currentState;
【问题讨论】:
-
我不知道,但由于类型不是强制性的,请考虑:
function fn(value1: MyType1, value2: MyType2)与function fn(MyType1 value1, MyType2 value2),现在如果我决定删除其中一种类型:function fn(value1: MyType1, value2)与function fn(MyType1 value1, value2)。后者看起来有点奇怪,与打字稿中的情况相反。此外,某些语言在 typescript 之前就有这种语法,例如ActionScript。 -
还有其他强类型语言似乎也影响了打字稿。 OCaml 和 Haskell 可能是两种最著名的强类型函数式语言,它们都有这种语法(尽管 haskell 使用两个冒号)
-
这个团队在这里很活跃,所以他们中的一个可能会通过你的帖子来提供背景,他们会更有能力谈论它,我只想说肯定有先例。
-
另外,这是 ECMAScript 4 使用的语法(由 ActionScript 3 实现,但从未由 JavaScript 实现),所以如果 TypeScript 团队不认为这是可遵循的设计先例,我会感到惊讶。
标签: syntax typescript strong-typing