接上章讲到
枚举
enum类型是对Js标准数据类型的一个补充,能给一个数字赋予名字。
enum Color {Red,Green,Blue,Yello} let c: Color = Color.Red如果Color里的每个元素设置了对应的值,但我们不知道他的元素,也是可以通过以下方式取出来的
enum Color {Red = 1, Green, Blue = 3} let colorNumber: string = Color[2];Any 我们往往会遇到一些我们不清楚某些遍历属于什么类型,比如说用户输入,或者使用第三方代码库的时候。这时候我们可以直接使用any类型标记这些变量。
let notKnow: any = 7; notKnow = “I'm a string” notKonw = false如果你知道一部分数据类型时,any类型也是有用的,例如一个数组
let list: any[] = [1,true,"str"] list[1] = 123Void
在某个程度上讲Void类型与Any相反,他表示没有任何类型,当一个函数没有返回值的时候可以用它
function sayHi(): void { console.log("hello ,Miss hou"); }如果你声明一个void类型的变量他只能赋予undefined和null
let num: void = undefined;Null 和 undefined
Ts默认情况下null 和 undefined 是所有类型的子类型,你可以把 null和undefined赋值给number类型的变量。
当你指定了–strictNullChecks标记,null和undefined只能赋值给void和它们各自。 这能避免 很多常见的问题。 也许在某处你想传入一个 string或null或undefined,你可以使用联合类型string | null | undefined
let thisUndefined: undefined = undefined; let thisNull: null = null;Never
never类型表示的是那些永不存在的值的类型。常用于异常
function error(message: string): never { throw new Error(message); } function error() { return error("Something failed"); } function error(): never { while (true) { } }Object object表示非原始类型
declare function create(o: object | null): void;