JS和TS的区别

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

TS

        TypeScript[4] 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。

      TS 拓展了 JS 的一些功能解决了 JS 的一些缺点TS完全兼容JS TS 是 JS 的超集可以总结在下面的表格里

TS 的缺点              

        1不能被浏览器理解需要被编译成 JS

        2有学习成本写习惯了 JS 的我们要上手需要花时间去理解而且 TS 中有一些概念还是有点难比如泛型。

TS基础类型

        boolean 

当赋值与定义的不一致会报错静态类型语言的优势就体现出来了可以帮助我们提前发现代码中的错误 如下     

        number 

        string

         undefined 和 null 类型

                默认情况下 null 和 undefined 是所有类型的子类型。可以把 null 和 undefined 赋值给 number 类型的变量

               但是如果指定了 --strictNullChecks 标记null 和 undefined 只能赋值给 void 和它们各自不然会报错。 

    any、unknown 和 void 类型

               any不清楚用什么类型可以使用 any 类型。这些值可能来自于动态的内容比如来自用户输入或第三方代码库

                注意在自己定义数据类型时不建议为any类型会失去TS含义

        unknown 类型 当我不知道一个类型具体是什么时可以使用 unknown 类型

     unknown 类型代表任何类型它的定义和 any 定义很像但是它是一个安全类型使用 unknown 做任何事情都是不合法的。

                比如这样一个 divide 函数

         void 

                void类型与 any 类型相反它表示没有任何类型。

                        比如函数没有明确返回值默认返回 Void 类型

         never 类型

                never类型表示的是那些永不存在的值的类型。

        数组类型 

                数组里的项写错类型会报错如下

     元组类型

                元组类型允许表示一个已知元素数量和类型的数组各元素的类型不必相同

                

                写错类型会报错 

                越界会报错

              push 一个没有定义的类型报错

函数类型

        TS 定义函数类型需要定义输入参数类型和输出类型输出类型也可以忽略因为 TS 能够根据返回语句自动推断出返回值类型

        函数没有明确返回值默认返回 Void 类型

        函数表达式写法 

        可选参数 参数后加个问号代表这个参数是可选的即有可无不强求一定传入这个参数注意可选参数要放在函数入参的最后面不然会导致编译错误

         默认参数默认参数可以放在函数入参的任意位置不一定时最后面

 函数赋值

        在 TS 中函数不能随便赋值会报错的

 函数重载

        函数重载是指两个函数名称相同但是参数个数或参数类型不同他的好处显而易见不需要把相似功能的函数拆分成多个函数名称不同的函数.

        不同参数类型

                         在 TS 中实现函数重载需要多次声明这个函数前几次是函数定义列出所有的情况最后一次是函数实现需要比较宽泛的类型比如上面的例子就用到了 any

        不同参数个数

 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6