Typescript(2.类型系统)

1. 布尔类型(boolean)

const flag: boolean = true;

2. Number类型

const flag: number = 2;

3. String类型

const flag: string = "Hello World!";

4. null 和 undefined

let nu: null = null
let un: undefined = undefined

5. 联合类型

let str: string | null = null
let num: 1 | 2 | 3 = 2

6. 枚举类型(Enum)

用于描述一些特定的业务,比如四季,星期,颜色,以及用它来描述一些状态信息等
优势:可以用更清晰的语义来表示内容

// 普通枚举写法,比如与后端数据库中约定好0代表男,1代表女
enum SexType {
    BOY,
    GIRL
}
// 枚举中的值默认是从0开始的,其余按顺序自动增长,如果设置BOY = 1,那么console.log(SexType.GIRL); //2
console.log(SexType.BOY); //0
console.log(SexType.GIRL); //1

// 字符串枚举 每个都需要声明
enum Color {
    RED = "红色",
    GREEN = "绿色",
    BLUE = "蓝色",
}

// 常量枚举 它是使用 const 关键字修饰的枚举,
// 常量枚举与普通枚举的区别是,整个枚举会在编译阶段被删除
const enum ColorType {
    RED,
    GREEN,
    BLUE,
}
const colors: ColorType[] = [ColorType.RED, ColorType.GREEN, ColorType.BLUE];
//编译之后的js如下:
//var colors = [0, 1, 2];
// 可以看到我们的枚举并没有被编译成js代码 只是把colors这个数组变量编译出来了

7. 数组类型(Array)

如下是两种描述方式:

const flag1: number[] = [1, 2, 3];
const flag2: Array<number> = [1, 2, 3];

8. 元组类型(tuple)

在 TypeScript 的基础类型中,元组(Tuple)表示一个已经知道数量和类型的数组,当然可以理解为它就是一种特殊的数组

// ?号 表示第二个值可有可无
const flag:[string, number?] = ["hello", 1];

9. 任意类型(any)

任何类型都可以被归为 any 类型 这让 any 类型成为了类型系统的顶级类型 (也被称作 全局超级类型)
TypeScript 允许我们对 any 类型的值执行任何操作 而无需事先执行任何形式的检查

一般使用场景

  1. 第三方库没有提供类型文件时可以使用 any
  2. 类型转换遇到困难或者数据结构太复杂难以定义时

注意点: 不过不要太依赖 any 否则就失去了 ts 的意义了

const flag: any = document.getElementById("rootId");

10. void 类型

void 表示没有任何类型 当一个函数没有返回值时 TS 会认为它的返回值是 void 类型

function myFun(name: string): void {}

11. 类型推断

TypeScript会根据存放的变量初始值来进行变量类型限定

let myStr = "ABCD"
myStr = 10 //这里的myStr会被提示:不能将类型“number”分配给类型“string”

类型推断方式由于不直观,所以不推荐

12. 类型注解

可以直接理解为变量的类型限定,如下:

let str:string = 'abc' //这里的str变量的值只能时string

13. 类型断言

let numArr = [0,1,2,3,4,5,6,7,8,9]
const resultArr = numArr.find(item => item > 0) as number

由于程序会认为数组numArr中可能会有undefined的情况,as number 的就是告诉程序numArr数组中肯定都是 number,从而可以进行只有 number 做的事情,比如加减乘除运算

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值