原始类型
布尔值
boolean 包含 true/false
const isDone: boolean = false
数字
number 浮点数,并且支持 二进制、八进制、十进制、十六进制字面量
const decLiteral: number = 6
const hexLiteral: number = 0xf00d // 十六进制
const binaryLiteral: number = 0b1010 // 二进制
const octalLiteral: number = 0o744 // 八进制
字符串
string
const name: string = 'bob'
null 和 undefined
const u: undefined = undefined
const n: null = null
any
any 任意类型
let notSure: any = 4
notSure = 'maybe a string instead'
notSure = false // okay, definitely a boolean
void
某种程度上来说,void 类型像是与 any 类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是 void
function warnUser(): void {
console.log('This is my warning message');
}
// 声明一个void类型的变量没有什么大用,因为你只能为它赋予 undefined 和 null
let unusable: void = undefined
Object 类型
object 表表示非原始类型,也就是除 number,string,boolean,symbol,null 或 undefined 之外的类型。
const foo: object = function () {} // [], {}
const obj: { foo: number, bar: string } = { foo: 123, bar: 'string' }
数组类型
元素后跟 []
const list: number[] = [1, 2, 3]
数组泛型
const list: Array<number> = [1, 2, 3]
元祖 Tuple
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为 string 和 number 类型的元组
let tuple: [string, number] = ['foo', 1]
枚举
enum 类型是对JavaScript标准数据类型的一个补充
// 默认从 0 开始,依次递增
enum Color {
Red,
Green,
Blue
} // 0, 1, 2
let c: Color = Color.Green; // 1
// 或者,全部都采用手动赋值
enum Color {
Red = 1,
Green = 2,
Blue = 4
}
let c: Color = Color.Green; // 2
// 枚举类型提供的一个便利是你可以由枚举的值得到它的名字
enum Color {
Red = 1,
Green,
Blue
} // 1, 2, 3
let colorName: string = Color[2]; // Green
函数类型
function add(x: number, y: number): number {
return x + y
}
let myAdd = function(x: number, y: number): number { return x + y }