TypeScript ------ 数据类型

TypeScript 语法简介

TypeScript 是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。
TypeScript扩展了JavaScript的句法,所以任何现有的JavaScript程序可以不佳改变的在TypeScript下工作。
TypeScript是为大型应用之开发而设计,而编译时它产生JavaScript以确保兼容性。
TypeScript支持为已存在的JavaScript哭添加类型信息的头文件,扩展了它对于流行的库如jQuery,MongoDB,Node.js和D3.js的支持。

数据类型

TypeScript数据类型包括:Boolean, Number ,String, Array Enum, Any , Void 七种。

1. Boolean 类型,取值 true/false
let isDone : boolean = false;
2. Number 类型
let height : number = 925.98;
3. String 类型
let name : string = "Fairy";
4. Array 类型

结合JavaScript种的数组有两种声明方式,一种是 let num = [] ,另外一种是let num = new Array()
TypeScript声明也有两种声明方式,第一种:

let list : number[] = [1,2,3];

第二种:

let list : Array<number> = [1,2,3];

以上四个类型通过JS的类型应该会更容易理解,接下来的三个类型是TypeScript新增的类型,需要费点心思去了解一下。

5. Enum 类型

TypeScript为JavaScript新增了枚举和这种标准的集合数据类型。和在C#中一样,枚举是为一组数值类型更友好的名称:

//定义枚举
enum Color {Red,Green,Blue};
//引用枚举
let c: Color = Color.Green;

或是手动设置全部的枚举成员:

enum Color {Red = 1,Green = 2,Blue = 4};
let c: Color = Color.Green;

运用枚举类型可以很容易从一个数值类型获取对应枚举名称。例如我们又一个数值类型2,但不确认将匹配哪一个枚举成员,那么我们可以如下使用:

enum Color {Red = 1,Green,Blue};
console.log(Color)  //{1: "Red", 2: "Green", 3: "Blue", Red: 1, Green: 2, Blue: 3}

let colorName: string = Color[2];
console.log(colorName); //Green

let colorName: number = Color["Red"];
console.log(colorName); // 1
6. Any 类型

变量的值会动态改变时,比如来自用户的输入,任意值类型可以让这些变量跳过编译阶段的类型检查, 如下:

 let notSure: any = 4;    //数字类型
 notSure = "maybe a string instead";  //字符串类型
 notSure = false;  //布尔类型

any 类型是一种强大的兼容存在的JavaScript库的类型系统。any 类型对应于我们只知道部分数据类型,但是不是所有的数据类型的类型系统。例如一个混合了多种类型的集合数组。

let list:any[] = [1, true, "free"];
list[1] = 100;
7. Void 类型

any 相对的数据类型则是 void ,它代表没有任何数据类型。通常用于表示一个方法没有任何返回值:

warnUser(): void {
	console.log("This is my warning message");
}
8. 元组 类型

元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同

let x: [string, number];
x = ['Runoob', 1];    // 运行正常
x = [1, 'Runoob'];    // 报错
console.log(x[0]);    // 输出 Runoob
9. null & undefined 类型

null 表示对象值缺失。
undefined 用于初始化变量为一个未定义的值
如果一个类型可能出现 null 或 undefined, 可以用 | 来支持多种类型

// 启用 --strictNullChecks
let x: number | null | undefined;
x = 1; // 运行正确
x = undefined;    // 运行正确
x = null;    // 运行正确
10. never 类型

never 是其他类型(包括 nullundefined)的子类型,代表从不会出现的值。
这意味着声明为 never 类型的变量只能被 never 类型所赋值,在函数中它通常表现为抛出异常或无法执行到终止点(例如无限循环)。

// 启用 --strictNullChecks
let x: never;
let y: number;

// 运行错误,数字类型不能转为 never 类型
x = 123;

// 运行正确,never 类型可以赋值给 never类型
x = (()=>{ throw new Error('exception')})(); //运行正确并抛出错误 exception

// 运行正确,never 类型可以赋值给 数字类型
y = (()=>{ throw new Error('exception')})(); //运行正确并抛出错误 exception

// 返回值为 never 的函数可以是抛出异常的情况
function error(message: string): never {
    throw new Error(message);
}

// 返回值为 never 的函数可以是无法被执行到的终止点的情况
function loop(): never {
    while (true) {}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值