TypeScript体操学习|青训营笔记

85 阅读2分钟

今天学习简单的体操入门

布尔值

TypeScript 中,使用 boolean 定义布尔值类型:

let isShow: boolean = false;

数值

使用 number 定义数值类型:

let a:number = 1;

字符串

使用string定义字符串类型:

let name:string = "xxx"

空值

JavaScript中空值常用(void 0 ===undefined),但在 TypeScript 中,可以用 void 表示没有任何返回值的函数:

function alertName(): void {
    alert('My name is Tom');
}

声明一个 void 类型的变量没有什么用,因为你只能将它赋值为 undefinednull

let unusable: void = undefined;

Null 和 Undefined

TypeScript 中,可以使用 nullundefined 来定义这两个原始数据类型:

let u: undefined = undefined; let n: null = null;

与 void 的区别是,undefinednull 是所有类型的子类型。也就是说 undefined 类型的变量,可以赋值给 number 类型的变量, void 类型的变量不能赋值给 number 类型的变量:

任意值(any)

any 类型,则允许被赋值为任意类型,此时不会对该对象进行ts的校验

unknown 未知类型

unknown 这个类型与 any 类型类似,可以设置任何的类型值,随后可以更改类型。因此,我们可以将变量先设置为字符串类型,然后再将其设置为数字类型,如果事先不检查类型,使用any类型,调用了不存在的方法,编译时不会报错,代码运行时才会发现错误。但是使用unknown 类型不一样,如果不进行类型判断,执行相关操作编译器就会报错。

never 类型

永远不存在的类型,never类型的ts不能复制给never类型,可以用来做枚举类型收窄。 在函数中使用返回值设置为never,看起来和void相似,但是其完全不一样。从字面意思上来说,表示一个从来不会有返回值的函数。

联合类型

联合类型(Union Types)表示取值可以为多种类型中的一种,使用 | 分隔每个类型。

let str:number|string=1