typeScript类型
TypeScript类型
ES6的数据类型
- Boolean
- Number
- String
- Array
- Function
- Object
- Symbol
- undefined
- null
TypeScript新加的数据类型
- void
- any
- never
- 元组
- 枚举
- 高级类型
1. 布尔值
let isDone: boolean = false;
2. 数字
和JavaScript一样,TypeScript里的所有数字都是浮点数。类型是number
let decLiteral: number = 6;
3. 字符串
let name: string = 'boy'
或模板字符串
let name: string = `Gene`
let sentence: string = `Hello, my name is ${ name }`
4. 数组
- 可在元素类型后面接上 [] ,表示由此类型元素组成的一个数组:
let list: number[] = [1, 2, 3];
- 使用泛型数组, Array<元素类型>
let list: Array<number> = [1,2,3,4,5] let list2: Array<string> = ['1','2','3']
5. 元组
let x: [string, number];
6. 枚举
enum类型是对JavaScript标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字。默认情况下,从0开始为元素编号。
enum Color { Red, Green ,Blue}
let c:Color = Color.Red
console.log(c) // 打印0
let cc:Color = Color[2]
console.log(cc) // 打印为Blue
也可以手动的指定成员的数值,例如将上面的例子改成从1开始编号:
enum Color {Red = 1, Green, Blue}
也可以全部采用手动赋值:
enum Color {Red = 1, Green = 2, Blue = 4}
7. Any
想要为在编程阶段还不清楚类型的变量指定一个类型,可以使用 any 来标记这些变量。
let notSure:any = 4;
notSure = "maybe a string instead";
notSure = false
在对代码进行改写的时候,any类型是十分有用的,它允许在编译的时候可选择的包含或移除类型检查。你可能认为 Object 有类似的作用,但是 Object 类型的变量只是允许给它赋任意值,却不能够在它上面调用任意的方法,即便它真的有这些方法。
8. Void、Null、Undefined
void 表示没有任何类型,当一个函数没有返回值时,你通常会见到其返回值类型是 void 。在typescript 里,undefined 和 null 都有自己的类型分别叫做 undefined 和 null ,和 void 相似,它们的本身类型用处并不大。默认情况下 null 和 undefined 是所有类型的子类型,当指定了 –strictNullChecks 标记, null 和 undefined 只能赋值给 void 和它们各自。
9. Never
never 类型表示的是那些永远不存在的值的类型,是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;变量也可能是 never 类型,当它们被永不为真的类型保护所约束时。
never 类型是所有类型的子类型;没有类型是 never类型的子类型或可以赋值给 never 的类型(除本身之外)
下面是一些返回 never 类型的函数:
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
return error("Something failed");
}
// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {
}
}
10. Object
bject表示非原始类型,也就是除number,string,boolean,symbol,null或undefined之外的类型。
使用object类型,就可以更好的表示像Object.create这样的API。例如:
declare function create(o: object | null): void;
create({ prop: 0 }); // OK
create(null); // OK
create(42); // Error
create("string"); // Error
create(false); // Error
create(undefined); // Error