中文网:https://www.tslang.cn/html
官网:http://www.typescriptlang.org/typescript
目录:数组
typescript中为了使编写的代码更规范,更有利于维护,增长了类型校验,写 ts 代码必须指定类型。dom
在typescript中主要给咱们提供了如下数据类型:函数
var flag = true; flag = 456;
let flag:boolean = true; // flag = 123; // 错误 flag = false; //正确
var num = 123; num = 456;
let num:number = 123; // num = '456'; // 错误 num = 456; //正确
var str = 'this is ts'; str = 'test';
let str:string = 'this is ts'; str = 'test';
var arr = ['12', '23']; arr = [34, 45];
let arr:string[] = ['12', '23']; arr = ['45', '56'];
let arr:Array<number> = [1, 2]; arr = ['45', '56'];
let tupleArr:[number, string, boolean] = [12, '34', true];
赋值的类型、位置、个数须要和定义(生明)的类型、位置、个数一致。学习
随着计算机的不断普及,程序不只只用于数值计算,还更普遍地用于处理非数值的数据。
例如:性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据。在其它程序设计语言中,通常用一个数值来表明某一状态,这种处理方法不直观,易读性差。this
若是能在程序中用天然语言中有相应含义的单词来表明某一状态,则程序就很容易阅读和理解。
也就是说,事先考虑到某一变量可能取的值,尽可能用天然语言中含义清楚的单词来表示它的每个值,
这种方法称为枚举方法,用这种方法定义的类型称枚举类型。设计
定义:code
enum 枚举名 { 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数] };
举例:htm
enum statusCode { success, fail, pending }; let res:statusCode = statusCode.success; console.log(res); // 0,若是标识符没有赋值,它的值就是下标,默认从 0 开始
enum statusCode { success = 2, fail, pending }; let res1:statusCode = statusCode.success; console.log(res1) // 2,指定的值 let res3:statusCode = statusCode.fail; console.log(res1) // 3,若没指定,从指定的日后开始
enum statusCode { success = 2, fail = 1, pending = 3 }; let res1:statusCode = statusCode.success; console.log(res1) // 2,指定的值 let res3:statusCode = statusCode.fail; console.log(res1) // 1,指定的值,可随意指定
表示能够指定任何类型的值。通常用于声明 dom 节点。
let num:any = 123; num = 'str'; num = true;
let boxEl:object = document.getElementById('box'); // 错误,dom 节点不是真正的对象 let boxEl:any = document.getElementById('box'); // 正确 boxEl.style.color = 'pink';
默认状况下null和undefined是全部类型的子类型。 就是说你能够把 null 和 undefined 赋值给 number 类型的变量。
通常用于可能为 undefined 或 null 的变量。
let num:number; console.log(num); // 输出:undefined 报错 let num:undefined; console.log(num); // 输出:undefined 正确
let num:number | undefined; // | 表示或者 console.log(num); // 正确 num = 123; console.log(num); // 正确
let num:null; num = null;
let num:number | null | undefined; num = 1234;
typescript 中的 void 表示没有任何类型,通常用于定义方法的时候方法没有返回值。
function fn () { console.log('fn'); } fn();
无返回值
function fn ():void { // 正确的写法 console.log('fn); } fn(); function fn ():undefined { // 错误的写法 console.log('fn); } fn();
函数没有返回值的时候,只能为 void,不能为 undefined。
有返回值
function fn ():number { return 123; } console.log(fn());
typescript 中的 never 是其余类型 (包括 null 和 undefined)的子类型,能够赋值给任何类型,表明从不会出现的值。可是没有类型是 never 的子类型,这意味着声明 never 的变量只能被 never 类型所赋值。
never 类型通常用来指定那些老是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型。
let a:never; a = 123; // 错误的写法 a = (() => { // 正确的写法 throw new Error('错误'); })()
let obj:object; obj = {name: 'Wang', age: 25};