TS基础|青训营笔记

166 阅读2分钟

为什么使用TS

TS与JS相比较

TS是JS的超集,本质上TS是JS上增加强类型和增加面向对象的功能。

TS:JavaScript的超集,用于解决大型项目的代码复杂性

       强类型,支持静态和动态类型

       可以在编译时发现并纠正错误

       不允许改变变量的数据类型

JS:一种脚本语言,用于创建动态网页

       动态弱类型语言

       只能在运行时发现错误:

       变量可以被赋值成不同类型

总之:

1.    TS更早(写代码的同时)发现错误, 减少找 Bug、改 Bug 时间 ,提升开发效率。

2.    程序中任何位置的代码都有代码提示 ,随时随地的安全感,增强了开发体验。

3.    强大的类型系统提升了代码的可维护性,使得重构代码更加容易。

4.    支持最新的 ECMAScript 语法 ,优先体验最新的语法,让你走在前端技术的最前沿。

5.    TS 类型推断机制, 不需要在代码中的每个地方都显示标注类型 ,让你在享受优势的同时,尽量降低了成本。

JS特性

类型安全

TS支持JS特性

工具链完善

TS基础

基础类型:

1.     boolean, number, string

2.     枚举类型enum

3.     any, unknown, void

4.     never

5.     数组类型[]

6.     元组类型tuple:数组的特殊类型

函数类型

定义: TS定义函数类型时要定义输入参数类型和输出类型

输入参数:参数支持可选参数和默认参数

输出参数:输出可以自动推断,没有返回值时,默认为void类型

函数重载:名称相同但参数不同,可以通过重载支持多种类型

Interface

定义:接口是为了定义对象类型

特点:

可选属性: ?

只读属性: readonly

可以描述函数类型

可以描述自定义属性:当不确定属性具体值时,可以把key当做key string来自定义其属性。

总结:接口非常灵活duck typing

定义:类似JS,但增加了一些定义。

特点:

-增加了public、 private、 protected修饰符

-抽象类:

       -只能被继承,不能被实例化

       -作为基类,抽象方法必须被子类实现

       -interface约束类,使用implements关键字