TypeScript出现的原因?
    为了解决JavaScript弱类型的特点。
    JavaScript是一种弱类型语言,即变量的类型是不确定的。

    1. x = 8; //8
    2. x = x + 'C'; // '8C'
    3. //x类型先是数字,后面又成字符串。

    虽然这样十分灵活,但作用于大项目时,很容易出错,而且往往要到运行时慢慢排查才知道。用TypeScript在编译时就会报错,这能大大降低系统复杂度。

    TypeScript是什么?
    TypeScript 是微软2012年推出的一种编程语言,属于 JavaScript 的超集,可以编译为 JavaScript 执行。 它的最大特点就是支持强类型和 ES6 Class。它始于javascript,归于javascript,使用了现有的javaScript库,可以在任何支持JS引擎中运行。简单说就是TS = JS + 类型

    TypeScript如何使用呢?
    很简单,在新建的.ts结尾的文件中(表明这是TS文件),只需像正常写JS代码,有变量时,变量指定类型。

    1. //greet.ts
    2. function greet(person:string){
    3. console.log("Hello, " + person);
    4. }
    5. greet([0,1,2])

    函数 greet 的参数,声明类型为字符串,但在调用时,传入了一个数组。
    通过tsc转换,就会抛出以下类型不匹配的错误。

    1. greet.ts(5,9): error TS2345: Argument of type 'number[]'
    2. is not assignable to parameter of type 'string'.

    其实你不需要运行,就可以知道写错了,加以改正。
    还有一些自定义声明类型的写法 type LocalItem = {...} ,具体用到时可查官网。

    TypeScript的原理是什么?
    为什么它能提前报错呢?其实是因为它有一个预编译的compiler。与JS是如下图这样合作的:
    Screen Shot 2020-08-05 at 2.41.13 PM.png
    多亏这个预编译的compiler,在预编译时就能报错。但TS也没有十分严苛不让你运行代码,报了错你还是可以运行的。

    总之,TS虽然写起来的时候会累,会需要你在各个地方严谨地声明类型,但对程序员是个很好的锻炼,锻炼思维的逻辑和严谨度。