一、基础类型
1.布尔类型
明确定义一个变量flag,指明必须是布尔类型
let flag:boolean = false;
把一个布尔值赋值个一个变量,ts会自动推到,这个变量是布尔类型
let bool = true;
2.数字
明确定义一个变量num,指明必须是数字类型
let num:number = 100;
把一个数字赋值一个变量,ts会自动推导,这个变量是数字类型
let id = 900;
3.字符串
明确定义一个变量str,指明是字符串类型
let str:string = 'hello'
把一个字符串赋值一个变量,ts会自动推导,这个变量是字符串类型
let str2 = 'world'
4.数组
明确定义一个变量是一个数组,数组里面的元素都是数字类型
let arr:number[] = [1,2,3]; // 方式一
let arr2:Array<number> = [2,3,4];// 方式二
把一个数组字面量赋值给一个变量,ts会自动推导,这个变量是数组类型
let arr3 = [1,2,3,4];
5.any
任意值,在我们不需要ts做类型检测的时候使用
不检查这个类型可以使用的方法,也不检测他拥有的属性
let noMatch:any = 4;
noMatch本来没有push方法,如果用了any,就不检查push方法是否能调用
noMatch.push()
6.unknown
任意值,在我们不需要ts做类型检测的时候使用
但是会限制能调用的方法
unknown类型不存在任何方法
let noMatch:unknown = [1,2,3];
7.断言
我告诉ts,我比你更清楚这个数据是什么类型,你听我的
(<number[]>noMatch).push(100)// 方式一
(noMatch as number[]).push(100)// 方式二
8.void
与any相反,表示没有任何类型
当一个函数没有返回值的时候,设置返回值void
function fn():void{
console.log('hello world')
}
9.联合类型
可以是多种类型中的一种
只能访问所有类型共有的属性和方法
let type:string|number|boolean = '1'
console.log(type.toString())
二、函数
1.函数声明
function add(a:string,b:number):void{
// 不能有返回值
}
add('hello',12)
2.函数表达式
let add2 = (a:string,b:string):number=>{
// 返回值必须是number类型
return (a+b).length;
}
add2('hello','world')
3.完整的函数类型定义
函数的形参名不要求一样,只要参数个数和类型相同就可以
参数个数不能多也不能少
let add3:(a:number,b:number[]