前言
上一节的上帝视角看 TypeScript,我们从宏观的角度来对 Typescript
进行了一个展望。之所以把那个放到开头讲是让大家有一个大体的认识,不想让大家一叶
障目。当你对整个宏观层面有了一定的了解,那么对 Typescript
的理解就不会错太多。相反,一开始就是具体的概念和
API,则很可能会让你丧失都整体的基本判断。
实际上, Typescript 一直在不断更新迭代。一方面是因为当初许下的诺言”Typescript 是
JavaScript 的超集“(JavaScript
的特性你要同步支持,同时也要处理各种新语法带来的不兼容情况)。不单是
ECMA,社区的其他发展可能也会让 Typescript 很难受。 比如 JSX 的广泛使用就给
Typescript 泛型的使用带来了影响。
TypeScript 一直处于高速的迭代。除了修复日常的 bug 之外,TypeScript
也在不断发布新的功能,比如最新 4.0.0 beta 版本的标签元祖
的功能就对智能提示这块很有用。Typescript
在社区发展方面也做的格外好,以至于它的竞争对手 Flow 被 Typescript
完美击败,这在很大程度上就是因为 Typescript
没有烂尾。如今微软在开源方向的发力是越来越显著了,我很期待微软接下来的表现,让
我们拭目以待。
变量类型和值类型
有的同学可能有疑问, JavaScript 不是也有类型么? 它和 Typescript
的类型是一回事么?JavaScript 不是动态语言么,那么经过 Typescript
的限定会不会丧失动态语言的动态性呢?我们继续往下看。