这是我参与「第四届青训营」笔记创作活动的的第4天
什么是TypeScripts?
TS属于静态类型、弱类型语言,是JS的超集,则包含于兼容所有Js特性,支持共存,支持渐进式引入与升级。
静态类型 (Static Typing)
在静态类型中,变量的类型必须在创建是确定好变量类型,在后续使用中只能将这指定类型的数据赋值给变量,强行将其他不相关的数据赋值时就会引发错误。
优点
- 可读性强:基于语法解析TSDoc,ide增强
- 可维护性增加:在编译阶段暴露大部分错误,使得在多人合作的大型项目中可以获得更好的稳定性和开发效率
- 性能更高:静态类型的程序在运行时会更快,因为在编译过程中已经进行了检测,就不需要去存储和检测类型,从而节省程序运行的时间和空间
弱类型
强弱类型的区别体现在于对于变量类型的检查,弱类型语言允许隐式类型转换的发生,即允许相关和不相关类型之间的隐式转换。
TS 基本语法
基础数据类型
可以初始化数据的时候同时定义数据类型
对象类型
通过创建接口和继承来实现创建对象,在接口中可以定义数据的
- 只读属性(约束属性不可在对象初始化外赋值)
- 可选属性(定义该属性可以不存在)
- 任意属性(约束所有对象属性都必须是该属性的子类型)
函数类型
可以使用返回值或者箭头函数来返回,需要注意的是函数返回和输入变量都需要定义数据类型
函数重载
函数重载的意义在于能够让你知道传入不同的参数得到不同的结果。
function add (arg1: string, arg2: string): string
function add (arg1: number, arg2: number): number
如果传入的参数不同,但函数的返回值类型相同,那么就不需要使用函数重载。
// Case 1
function func (a: number): number
function func (a: number, b: number): number
// 像这样的是参数个数的区别,我们可以使用可选参数来代替函数重载的定义
function func (a: number, b?: number): number
// Case 2
function func (a: number): number
function func (a: string): number
// 使用联合类型来代替函数重载
function func (a: number | string): number