9. Typescript入门

64 阅读1分钟

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; 多种类型叠加到一起成为一种类型,包含了所需的所有类型的特性

image.png

类型保护和类型守卫

image.png

类型守卫:定义一个函数,返回值是一个类型谓词,生效范围为子作用域

image.png

类型保护:typeof和instance

image.png

4. 工程应用

  1. webpack配置
  2. node
  • 使用tsc运行编译得到js文件