TypeScript

        这篇博客是了解ts然后快速入门,可以在项目中使用,就是简单的了解什么是ts以及直接项目开发的时候怎么去使用。

        先来看张图。

        

        这张图很好的解释了ts是什么?相当于js的超集,也就是包含了js,而且在基础上增加了很多现代的开发特效,不过单纯的看这些其实并不是我现在最需要的,就是为什么要用ts,我现在希望的是描述出来ts怎么用,以及真正的去用ts写代码。

 1.ts的核心

        当我们在用js写代码的时候,

        

        图中的情况我们写代码的时候js不会报错提醒,但是运行的时候我们就会发现控制台的报错。而ts的核心就是解决这些问题。

        ts的核心静态类型检查,在代码运行前进行检查发现代码错误或者不合理的地方,减小运行时异常的出现概率,简而言之就是运行时的错误前置。同样的功能ts代码大于js,但是ts结构更清晰代码维护远胜于js,所以大型项目需要用ts。

2.ts的使用

        安装ts---npm install typescript -g 全局安装ts包,这时候我们只需要在文件后缀名加上ts就可以了。浏览器不认识ts,需要转化为js。

        我们用两种方式

        1.命令行编译

                tsc index.ts就可以把index.ts这个文件转化为index.js文件

        

        2.自动化编译

        首先输入tsc --init 生成tsconfig.json生成ts配置文件 里面规定ts如何转化为js,然后我们就可以输入tsx --watch开启监听,只要ts文件修改就会自动生成js文件。

        

        如果我们希望ts文件有错误的时候不自动生成js文件,就去配置文件打开noemitonerror:true emit翻译是发送也就是有错误就不发送,语义就是有错误不生成。也可以tsc --noEmitOnError --watch这样监听的时候开启。

         

3.ts的新数据类型

        我们说了ts是静态类型检查,也就是说只要声明变量,就需要提前去定义好他们的数据类型。

        

         

        ts在js的基础上多了6个新类型,现在我们就先说新类型怎么用。

         

         any类型可以赋值任何类型,甚至可以直接给number类型赋值为字符串。unknown是可以赋值任何类型但是不可以给其他变量赋值,而且不可以使用原型上的方法,除非判断确定是什么类型。

        

        never就是定义为never之后变量不可以定义任何值,没有意义,可以给函数的返回值设置never那样就必须终止函数,不能有返回值。

         

        一般用于函数返回值声明,语法上函数可以返回undefined是显示还是隐式无所谓,语义调用者不关心函数返回值不依赖返回值进行任何操作即使是undefined。

        

         object类型,声明之后除了number boolean string null undefined 都可以存储到变量中,所以一般不用 Object声明除了null undefined都可以存,所以一般 也不用。

           

        我们一般用 图中的方式声明对象,数组函数。

        

         

         

        枚举enum定义一组常量防止出现拼写之类的错误。

        

        这是数字枚举生成对应的js代码,很多而且其实没有意义,因为我们只需要输出.Up,所以我们用常量枚举,优化性能。

         

 type类型--为任意类型创建别名

        两种使用方式(或和且)

        

4.属性修饰符 

        1.public

                

        这里的Person类中的所有数据包括方法都是默认public类内部子类类外部都可以访问 

         

        属性可以简写

         2.protected

                        只有类的内部和子类可以访问

                

        

       3.private

                只能在类的内部使用

        

        4.readonly 

                只读的不能修改

                

 5.抽象类

        

         

        用abstract关键字去定义抽象类以及抽象方法,然后让子类继承。

         

6.interface(接口)

 

      

   

7.泛型 

        

         

8.类型声明文件 

        当我们希望引入js文件到ts文件中,需要提前配置一个d.ts文件用declare声明js文件所有函数类等数据的数据类型。

        

        包括html文件引入js的时候type改为module。然后ts文件就可以import {add} from './demo.js'

        

        TypeScript 本质上不是为了让你写更多代码,而是为了让你在项目越来越复杂的时候,不至于被代码反噬。

从这篇文章你可以看到:

  • 它解决了 JavaScript 运行时才报错的“后知后觉”;
  • 它通过类型系统带来开发体验和团队协作的飞跃;
  • 它并不难入门——只要你愿意加个 .ts 后缀,从配置、编译、到类型声明、泛型、接口、修饰符,都能按需使用、逐步加深。

TypeScript 的优势不是立竿见影,而是在你维护、协作、重构时,带来一种“被保护”的开发体验。

学习 TypeScript 的过程,就是**从写 JS 到写“更稳的 JS”**的过程。

如果你还没用上 TypeScript,现在就是一个刚刚好的开始。未来你一定会感谢现在决定学习它的自己。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值