TS学习01-基本数据类型

基础类型

数组

  • 第一种: 元素类型[]
let arr: number[] = [1,2,3]
  • 第二种: 数组泛型-Array<元素类型>
let arr: Array<number> = [1,2,3]

元组 Tuple

表示一个已知元素数量和类型的数组·

let arr: [string, number]
a = ['RenNing', 18]

当访问越界元素,会使用联合类型代替

arr[1] //18
arr[3] = 'world' // (string | number) 类型

枚举 enum

JavaScript标准数据类型的一个补充。

enum Color {Red, Green, Blue}
let c: Color = Color.Green //1

默认从 0开始为元素编号;可以手动指定成员值

enum Color{Red = 3, Green, Blue = 8}
let c: Color = Color.Green //4

通过枚举的值渠道他的名字

let colorName: string = Color[3] //red

Any

Void

void类型像是与any类型相反,它表示没有任何类型。

当一个函数没有返回值时,你通常会见到其返回值类型是 void

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

Null 和 Undefined

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

默认情况下nullundefined是所有类型的子类型。

可以把 nullundefined赋值给number类型的变量。

let a:number = null

当你指定了--strictNullChecks标记,nullundefined只能赋值给void和它们各自

在某处你想传入一个 stringnullundefined,你可以使用联合类型string | null | undefined

Never类型

标识永不存在的值的类型

例如, never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;

never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型

function error(message: string) :never {
    throw new Error(message)
}

类型断言

形式一: “尖括号”语法

let someValue: any = 'this.is a string'
let strLength: number = (<string>someValue).length

形式二: as语法

let strLength: number = (someValue as string).length;

你可能感兴趣的:(ts,typescript,学习)