基础
原始类型
原始类型:number/string/boolean/null/undefined/symbol
对象类型:oject(数组,对象,函数等)
自定义复杂的对象类型:
type CustomArray = (number | string)
let arr1: CustomArray = [1,'a',3,'b']
let arr2: CustomArray = ['x','y',6,7]
函数类型:本质是函数的参数和返回值类型
function add(num1:number,num2:number):number{
return num1 + num2;
}
const add = (num1:number,num2:number):number =>{
return num1 + num2;
}
函数
可选参数:在可传可不传的参数名称后面添加?,可选参数只能出现在参数列表的最后
function mySlice(start?:number,end?:number):void{
}
1)变量定义方法: let 变量名:变量类型
2)具有原始类型和对象类型,原始类型有:number、string、boolean、undefined、null
3) 变量的声明有let和var,const,var函数作用域,let,const是块级作用域(块级作用域通俗来说一对花括号包起来的区域),
4) any类型代表当前类型无法确定,实际项目中应该减少使用any类型
字符串
使用常识
官方推荐用法
官方不推荐使用Number,String,Boolean,Symbol,Object等包装类型对象进行类型定义,
推荐采用原子数据类型:number, string, boolean, and symbol和非原子数据类型type进行替代。
Number.parseInt();
num = Number(str); // 将字符串转化为数字
str1 = String(num1); // 将数字转换为字符串
var var_name = new String(string);
charAt() // 返回字符
charCodeAt() // 返回字符对应的number
toLowerCase() // 将字符串变成小写
substring() // 字串
String.fromCharCode(s.charCodeAt(idx)^32) //将字符产idx位置的字符进行大小写转换
数组
常识: typescript数组以下简化写法
Array<number> => number[]
Array<string> => string[]
定义
let array1:Array<number>;
let array2:number[];
const he = new Array<number>(N); // 数组分配固定大小的空
e = new Array<number>(M).fill(0); // 1维数组定义并初始化
let array:Array<number> = [1,2,3,4];
const dirs = [[1,0],[-1,0],[0,1],[0,-1]] // 2维数组定义
const dist = new Array<Array<Array<number>>>() // 3维数组定义
for (let i = 0; i < n; i++) { // 3维数组初始化
dist[i] = new Array<Array<number>>(m)
for (let j = 0; j < m; j++) {
dist[i][j] = new Array<number>(1 << 10).fill(0x3f3f3f3f)
}
}
let arr:(number | string)[] = [1,'a',3,'b'] // 联合数组对象
常用方法
array[4] = 5; // 赋值
array.push(6); // 添加
array.fill(-1); // 数组初始化为-1
array.splice(index, howMany, [element1][, ..., elementN]);
array.reduce((prev,next)=>{return prev + next.num;},0);
Map对象
ts是js的超集,map在js就已经得到支持。
定义
let map = new Map();
let map = {}
操作
支持map[key]的形式进行访问和修改
set/get/has:设置,获取,检查
常用数学函数
Math.max(res,cnt); // 取较大值
Math.pow(5, 3); //
Number.MAX_VALUE // 最大的浮点数