这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
一、typescript的定义解析
typescript源于JavaScript,JavaScript是执行了才知道数据类型,弱类型语言是对数据类型比较严格
ts的特性:ts是js的超集,意味着在js中能运行的在ts也能运行
二、typescript的基本语法
基础数据类型
左边是js定义方式,右边是ts的定义方式,就是在变量名后加冒号和数据类型
对象数据类型
定义interface接口时名称约定俗成前面加一个字母I
只读属性readonly:无法修改
可选属性:在冒号前加问号
任意属性:可以后期自己添加的属性
函数声明类型
一种是直接在函数上进行类型的补充,一种是给函数的变量进行一个类型的声明
函数重载
函数后面的冒号:数据类型是说明函数的返回值类型是什么样的,在interface中有三种类型可选,如果是string的话会...如果是date会...
数组类型
数组本身是一种特殊的object
typescript补充类型
枚举类型中add和+是形成了映射
、
typescript泛型
尖括号的内容是泛型
用extends来作为泛型约束
用=来作为泛型的默认值
前后者还是有差别的,前者是函数的泛型后者是类型的一个泛型
字符串/数字 字面量
指定字面量
typescript高级类型
联合/交叉类型
改进前:可以看到右边的定义是比引用代码要长,且定义type类型为string,但是只有history和story
改进后:
类型保护与类型守卫
改进前:这段代码会报错,因为联合类型是需要两个之间有共同点,但是IA和IB是没有共同属性的
改进后:
高级类型
函数的返回值类型
工程应用
- webpack
-nodejs