TypeScript

105 阅读2分钟

基本语法

基本类型

关键字描述
number可以用来表示整数和分数
string字符串
booleantrue或false
数组let arr:number[] = [];let arr:Array<number> = []
元组元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同;let x: [string,number] = ['123',123]
枚举enum Color {Red,Green,Blue};let c:Color = Color.Red;console.log(c);//输出0
void标识方法的返回值
null表示对象值的缺失typeof检测null返回object
undefined用于初始化变量为一个未定义的值
nevernever是其他类型(null/undefined)的子类型,表示从不会出现的值,在函数中它通常表现为抛出异常或无法执行到终止点(例如无限循环)

any类型

let x:any = 1;
x = '1'
let arrayList:any[] = [1,'1',true]

定义多个类型限制

let x: number|null|string;

变量声明

断言

类型断言纯粹是一个编译时语法,同时,它也是一种为编译器提供关于如何分析代码的方法。

let x:number;
x = y as number;

! 表示不为空

循环

for...in循环

for...in 语句用于一组值的集合或列表进行迭代输出。

for(let i in list){
    console.log(i)
}

for...of循环

for...of 语句创建一个循环来迭代可迭代的对象。在 ES6 中引入的 for...of 循环,以替代 for...in 和 forEach() ,并支持新的迭代协议。for...of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。

for(let i of list){
    console.log(i)
}

forEach循环,every循环,some 循环

因为 forEach 在 iteration 中是无法返回的,所以可以使用 every 和 some 来取代 forEach。

let list = [4,5,6]
list.forEach((val,idx,array)=>{
    console.log(val,idx,array)
    //val: 数据
    //idx: 索引
    //array: 数组本身
})
let list = [4,5,6]
list.every((val,idx,array)=>{
    console.log(val,idx,array)
    //val: 数据
    //idx: 索引
    //array: 数组本身
})
let list = [4,5,6]
list.some((val,idx,array)=>{
    console.log(val,idx,array)
    //val: 数据
    //idx: 索引
    //array: 数组本身
})

无限循环

for(;;){}
while(true){}

函数

function fun_name([param1:xxx,params:xxx,...]): 返回值类型{
    //方法体
}

参数列表

可选参数,默认参数,剩余参数

param1: number,param2: number = 0.5,...nums:number[]

匿名函数

var res = function([arguments]){...}

匿名函数自调

(function(){})()

构造函数

var res = new Function ([arg1[, arg2[, ...argN]],] functionBody)

var myFun = new Function('a','b','return a * b')
var x = myFun(1,2)
console.log(x)//输出2

lambda函数

( [param1, parma2,…param n] )=>statement;

Number

Number 对象是原始数值的包装对象 var x = new Number()

String

var x = new String()

Array

var x = new Array()

数组解构

var array:number[] = [1,2,3];
var [x,y,z] = array;

Map

Map对象保存键值对,并且能够记住键的原始插入顺序;任何值都可以作为一个键或者一个值 let myMap = new Map()

元组

联合类型

Type1|Type2|Type3

接口

interface interface_name { //可以定义参数 }

class class_name { 
    // 成员变量
    // 构造器
    // 方法
}

类的继承

extends

实现接口

implements