天天看点

(TypeScript篇)一.基础

1.安装

1)安装命令

>npm install -g typescript

2)查看ts版本号(PS:ts指的是typescript)

>tsc -v

3)编译命令

>tsc 文件名.ts

2.基础类型

1)布尔类型

let isDone: boolean = false;

2)数字类型

let age: number = 25;

let binaryNumber: number = 0b1010;  // 二进制数字

3)字符串类型

let name: string = 'mamba';

let desc:string = `My name is ${mamba}, age ${age}`;

4)undefined和null

let u: undefined = undefined;

let n: null = null;

说明:undefined和null是所有类型的子类型

问题:undefined和null的区别?

参考文章:https://www.jianshu.com/p/705c628eafc3

undefined:a.定义变量未赋值 b.访问对象不存在属性或者未定义变量 c.函数中定义了形参,未传实参 d.使用void对表达式求值

null:a.如果定义的变量在将来用于保存对象,那么最好将该变量初始化为null

b.当一个数据不再需要使用时,我们最好将其设置为null来释放其引用

注:特殊的typeof null 当我们使用typeof操作符检测null值,返回的类型却是“object”

总结:undefined表示一个变量自然的,最原始的状态值,而null则表示一个变量被人为的设置为空对象,而不是原始状态。不要对一个变量显式的赋值undefined,当需要释放一个对象时用null即可。

3.any类型和联合类型

1)any类型

说明:允许赋值为任何类型

let anyKind: any = 4;

anyKind = 'wo shi any lei xing xixi';

anyKind = false;

2)联合类型

说明:多种类型设置

let numOrStr: number | string = 234;

numOrStr = 'mamba';

4.Array和Tuple类型

1)Array

let arrOfStr: string[] = ['job', 'xiaoming', 'zzz'];

arrOfStr.push('wz');

2)Tuple元组,可以放不同类型的数据

let user: [string, number] = ['google', 12]

5.interface接口

说明:a.对对象的形状(shape)进行描述 b.对类(class)进行抽象 c.对类(class)进行抽象 d.Duck Typing 鸭子类型

1)定义接口

interface Person{

    readonly id: number;  // 只读属性,定义时候赋值,不能修改

    name: string;

    age?: number; // ?符合表示可选属性

}

2)定义变量,按照上面接口规范

let mamba: Person = {

    id: 1,

    name:'mamba',

    age:13

}

// 报错不能修改: mamba.id = 2;

说明:const定义常量  readonly用在属性上

6.函数和判断类型

1)函数声明写法

function add(x: number, y: number, z: number = 10): number{

    // 参数z可选

    if(typeof z === 'number'){

       return x + y + z;

    }else{

        return x + y;

    }

}

2)函数表达式写法

const add2 = function(x: number, y: number, z: number = 10): number{

    if(typeof z == 'number'){

       return x + y + z;

    }else{

        return x + y;

    }

}

// '=>'符号是ts中声明函数类型返回值的方法

const add3: (x: number, y: number, z?: number) => number = add2;

补充:ts中的类型推论是什么?

最基本的描述就是根据右侧的值推断左侧变量的类型。

a.多类型联合:当我们定义一个数组或者元组这种包含多个元素的值的时候,多个元素可以有不同的类型,这时候 typescript 会将多个类型合并起来,组成一个联合类型

b.上下文类型:根据左侧的类型推断右侧的类型

参考文章:

https://www.cnblogs.com/wjaaron/p/12881392.html