1. Typescript特点
JS: 动态类型,弱类型语言
TS: 静态类型,弱类型语言
* 静态语言:执行前编译,动态则为执行时编译 * 弱类型:隐式类型转化
静态类型特点:
- 可读性增强
- 可维护性增强:
TS是Js的超集:
- 包含于兼容所有Js特性
- 渐进式引入与升级
2. Typescript语法
基础数据类型声明:
let q: string = 'string';
let w: number = 1;
对象数据声明:
let dancer: Dancer = {
id:100,
name:'flying',
sex: 'man',
}
dancer.randomAttribute = 'haha'
interface Dancer{
readonly id: number;
name: string;
sex: 'man' | 'woman'
/* 可选属性 */
hobby? : string;
/* 任意属性: */
[key: string] : any;
}
Typescript泛型:
function getRepeatArr(target){
return new Array(100).fill(target);
}
type IGetArr = <T>(target: T) => T[];
3. 高级类型
联合/交叉类型 联合类型: IA | IB ;可以表示一个值或者几种类型之一 交叉类型: IA & IB; 多种类型叠加到一起成为一种类型,包含了所需的所有类型的特性
类型保护和类型守卫
类型守卫:定义一个函数,返回值是一个类型谓词,生效范围为子作用域
类型保护:typeof和instance
4. 工程应用
- webpack配置
- node
- 使用tsc运行编译得到js文件