1、Typescript 基础语法
在 es5 中,JavaScript 的变量可以是任意类型,比如变量声明的时候为 boolean 类型,后续又可以被赋值为 number 类型,但是 Typescript 中,声明变量或传递参数时需要在变量和参数后通过 ' :数据类型 ' 的形式:var [变量名]:[类型] = 值;,为其指定特定的数据类型:
var flag = true;
flag = 456; //变量flag最初是boolean类型,然后赋值为number类型,在es5语法中是合法的
//Typescript 中为了使编写的代码更规范,更有利于维护,增加了类型校验,具体语法如下:
var flag:boolean = true; //在 Typescript 中,声明变量时需要在变量后通过 ':数据类型' 的形式,为变量指定数据类型
flag = false; //正确
flag = 123; //错误 类型赋值错误,flag最初指定的是 Boolean类型,所以给他赋值number类型
2、Typescript 基本类型
Typescript 中为了使编写的代码更规范,更有利于维护,增加了 类型校验,在 Typescript 中主要提供了以下数据类型:
任意类型(any) | 数字类型(number) | 字符串类型(string) | 布尔类型(boolean) | 数组类型(array) |
元组类型(tuple) | 枚举类型(enum) | null 和 undefined | void 类型 | never 类型 |
数据类型 | 关键字 | 描述 |
任意类型 | any | 声明为any的变量可以赋值任意类型的值:let a:any = 1;a = false; a = 'erha'; |
数字类型 | number | 双精度64位浮点值,可以用来表示整数/分数:let a:number = 0b1010/0o744/6/0xf00d; |
字符串类型 | string | 使用单引号或双引号来表示字符串类型,反引号(`)来定义多行文本和内嵌表达式。 let name:string = "erha";let age:number = 5;let words:string = `hello ${name},你 ${age}岁了 `; |
布尔类型 | boolean | 表示逻辑值:true/false。 let flag:boolean = true; |
数组类型 | 无 | 声明变量为数组。let arr:number[] = [1,2];//在元素类型后面加上[ ]。 let arr:Array<number> = [1,2];//或者使用数组泛型 |
元组 | 无 | 元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同。 let x:[string,number];x = ['erha',1];//正常运行。x = [1,'erha'];//报错。console.log(x[0]);//erha |
枚举 | enum | 枚举类型用于定义数值集合。如果标识符没有赋值,它的值就是下标。 enum Color {Red,Green,Blue};let c:Color = Color.Blue;console.log(c);//输出2 |
void | void | 用于标识方法返回值的类型,表示该方法没有返回值。function hello() : void { alert("Hello erha");} |
null | null | 表示对象值缺失。用 typeof 检测 null 返回是 object。 |
undefined | undefined | 用于初始化变量为一个未定义的值。typeof 一个没有值的变量会返回 undefined。 let x:number I nullIundefined;x=1;//运行正确。 x=undefined;//运行正确。x=null;//运行正确。 |
never | never | never 代表从不会出现的值,它是其它类型(包括 null 和 undefined)的子类型,这意味着声明 never 的变量只能被 never 类型所赋值。 |
注意:TypeScript 和 JavaScript 没有整数类型。 |