一、Typescript 常用的数据类型
布尔类型(boolean)、数字类型(number)、字符串类型(string)、数组类型(array)、元组类型(tuple)、枚举类型(enum)、任意值类型(any)、null和undefined、void类型、never类型
布尔类型(boolean)
let flag: boolean = true;
数字类型(number)
let binaryLiteral: number = 0b1010; // 二进制
let octalLiteral: number = 0o744; // 八进制
let decLiteral: number = 6; // 十进制
let hexLiteral: number = 0xf00d; // 十六进制
字符串类型(string)
let str: string = 'Hello Typescript'
console.log(str) // Hello Typescript
数组类型(array)
1、第一种定义数组的方法 : 元素类型后面加上[]
let arr: number[] = [1, 2, 3, 4, 5]
console.log(arr)
let arr: string[] = ['x', 'y']
console.log(arr)
2、第二种定义数组的方法 : 数组泛型
let arr:Array<number> = [11,22,33,44,55]
console.log(arr)
元组类型(tuple)元祖 属于数组的一种
let arr:[string,number,boolean] = ['ts', 22, true]
console.log(arr)
枚举类型(enum)
enum 枚举名 {
标识符[=整型常数],
...
标识符[=整型常数]
}
enum Flag { success = 1, error = -1 }
var f: Flag = Flag.success
console.log(f) //1
enum Color {res, blue, orange} // 枚举默认 是 索引值 从 0开始
var c:Color = Color.orange
console.log(c) //2
enum Color { res, blue = 5, orange } // 枚举默认没有值 是以上一个 为基准的
var c: Color = Color.orange
console.log(c) //输出 为 6 是以 blue 为 基准的
任意类型(any)
用法 : 当获取dom 节点的时候需要指定 类型 可以指定为 any 类型
var oBox:any = document.getElementById('box');
oBox.style.color = 'red'
null和undefined
null 和 undefined 属于其他类型(never)的子类型
undefined 变量定义了但是没有 赋值 就会出现 undefined
var num: number;
console.log(num) //会报错
var num: undefined;
console.log(num) // 不会报错
var num: undefined | number;
console.log(num) // 不会报错
void类型
用于标识方法返回值的类型,表示该方法没有返回值。
function hello(): void { alert("Hello Runoob");}
never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值
let x: never;
let y: number;
x = 123; // 运行错误,数字类型不能转为 never 类型
x = (()=>{ throw new Error('exception')})(); // 运行正确,never 类型可以赋值给 never类型
y = (()=>{ throw new Error('exception')})(); // 运行正确,never 类型可以赋值给 数字类型
function error(message: string): never { // 返回值为 never 的函数可以是抛出异常的情况
throw new Error(message);
}
function loop(): never { while (true) {}} // 返回值为 never 的函数可以是无法被执行到的终止点的情况