TypeScript 基础数据类型简介

TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便实用。

一、布尔值 boolean

//布尔类型
let idDone: boolean = false;

二、数字 number

和JavaScript一样,所有的数字都是浮点数。除了支持十进制、十六进制,还支持ECMAScript 2015中引入的二进制和八进制字面量。

//数字类型
let decLiteral: number = 7;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
三、字符串 string

和JavaScript一样,可以使用双引号( ")或单引号(')表示字符串。

//字符串
let name: string = 'bob';
name = "smitch";

扩展功能模板字符串, ${ expr },这种方式类似C#6.0中的字符串拼接方法。

不同的是在JavaScript中需要使用反引号(`)将,字符串包裹。

let sentence: string = `name=“${name}”,decLiteral="${decLiteral * 10}"`; //使用模板字符串,需要使用反引号包裹
console.info(sentence);
四、数组 

和JavaScript一样可以使用两种方式定义数组

1.number []

let list: number[] = [1, 3, 2];
console.info(list);

2. Array<元素类型>

let list2: Array<number> = [4, 5, 6];
console.info(list2);

五、元组 Tuple

元组类型允许表示一个一直元素数量和类型的数组,各元素类型不必相同

//元组Tuple
let x: [string, number];
x = ['hello', 10];
//x=[10,'hello']; //编译时出错,与元组对应类型不相同
console.info(x[0].substr(1));
x[3] = 'world';
console.log(x[5]); //编译不会出错,运行出错,因为x[5]没有赋值为undefined
//x[6] = true; //编译出错,boolean不是number或string类型
x[6]=100;
console.info(x); //说明元组中为undefined的属性序列化的时候不会显示
六、枚举 enum

enum类型是对JavaScript标准数据类型的一个补充,用法同C#基本类似。

//使用方式同C#相同,不指定编号则从0开始
enum Color{
    Red,
    Green,
    Blue
}
let c:Color=Color.Green; //输出枚举的值:1
console.info(c);
console.info(Color[2]); //获取枚举值对应的字符串定义
console.info(Color);
七、特殊数据类型

1.Any

使用any类型标记的变量,编译时不检查类型,运行时检查。

//Any
let notSure:any=4;
console.info(notSure.toFixed(2)); //正常输出:4.00
notSure='Are you sure?';
notSure=false;

// console.info(notSure); //正常输出false
console.info(notSure.toFixed(2)); //编译不报错,运行时报错

2.Void

某种程度上来说,void类型和any类型相反,它表示没有任何类型。主要用户函数的空返回。

void类型可以赋值为null或者undefined

//Void 类型
let unusable: void = undefined;
console.info(unusable);
function warnUser(): void {
    alert('This is my waring message.');
}

3.Null 和 Undefined

默认情况下nullundefined是所有类型的子类型。 就是说你可以把 nullundefined赋值给number类型的变量。

4.Never

never类型表示的是那些永不存在的值的类型。

never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 any也不可以赋值给never

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
    throw new Error(message);
}

// 推断的返回值类型为never
function fail() {
    return error("Something failed");
}

// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
    while (true) {
    }
}

八、类型断言
 类型断言好比其它语言里的类型转换,但是不进行特殊的数据检查和解构。 它没有运行时的影响,只是在编译阶段起作用。 

两种形式是等价的。 至于使用哪个大多数情况下是凭个人喜好;然而,当你在TypeScript里使用JSX时,只有 as语法断言是被允许的。

//类型断言
let someValue: any = 'this is a string';
let strLenth: number = (<string>someValue).length;
console.info(strLenth);

let value2: any = 11;
let num1: string = (value2 as number).toFixed(2);
console.info(num1);


更多:

TypeScript 变量声明

TypeScript开发环境搭建-Visual Studio Code

          TypeScript 简介整理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值