TypeScript 基础类型
基础类型
- 布尔值(Boolean)
- 数字(Number)
- 字符串(String)
- 数组(Array)
- 长整型(BigInt)
- Symbol
- Null
- Undefined
布尔值(Boolean)
let isDone: boolean = false;
数字(Number)
ES6 提供了二进制和八进制数值的新的写法,分别用前缀 0b(或 0B)和 0o(或 0O)表示。
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
字符串(String)
let name: string = 'bob';
name = 'smith';
另外还可以使用模板字符串,它可以定义多行文本和内嵌表达式。这种字符串是被反引号包围(`),并且以 ${ expr } 这种形式嵌入表达式。
let name: string = `Gene`;
let age: number = 37;
let sentence: string = `Hello, my name is ${ name }. I'll be ${ age + 1 } years old next month.`;
数组(Array)
let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];
长整型(BigInt)
const max: bigint = 9007199254740991n;
Symbol
let sym1 = Symbol();
let sym2 = Symbol('key');
Null
let n: null = null;
Undefined
let u: undefined = undefined;
Any
在 TypeScript 中,任何类型都可以赋值给 any 类型,而 any 类型也可以赋值给任何类型。
let notSure: any = 4;
notSure = 'maybe a string instead';
notSure = false; // okay, definitely a boolean
联合类型
联合类型(Union Types)表示取值可以为多种类型中的一种。
let myFavoriteNumber: string | number = 'seven';
myFavoriteNumber = 'seven';
myFavoriteNumber = 7;
但是,访问联合类型的属性或方法时,只能访问此联合类型的所有类型里共有的属性或方法,不能访问其他类型的属性或方法。
数组
let fibonacci: number[] = [1, 1, 2, 3, 5];
或者使用数组泛型,泛型将在后面介绍。
let fibonacci: Array<number> = [1, 1, 2, 3, 5];
类数组:
function sum() {
let args: {
[index: number]: number;
length: number;
callee: Function;
} = arguments;
}
类数组不是数组类型,比如 arguments。常见的类数组都有自己的接口定义,如 IArguments, NodeList, HTMLCollection 等,类数组不具备数组的一些方法,比如 push,pop 等,所以在 TypeScript 中,类数组只能用接口表示。
元组(Tuple)
元组(Tuple)合并了不同类型的对象,比如一个数组合并了多种类型的对象。
let xcatliu: [string, number] = ['Xcat Liu', 25];