1.类型推断
let str = 'wct'
str = 10
2.类型注解
let str:string
str = 'wct'
let str1:string = 'wct'
3.类型断言
let numArr = [1,2,3]
const result = numArr.find(item=>item>2)
result as number*5
4.基础类型和联合类型
基础类型
let v1:string='wct'
let v2:number=10
let v3:boolean=true
let nu:null=null
let un:undefined=undefined
联合类型
let v4:string | null = null
let v5:1|2|3|string=2
5.数组、元组、枚举
数组
let arr:number[]=[1,2,3,5]
let arr1:Array<string>=['a','b']
元组
let t1:[number,string,number]=[1,'a',2]
let t2:[number,string,number?]=[1,'a']
枚举
enum MyEnum{
A,
B,
C
}
console.log(MyEnum.A)
console.log(MyEnum[0])
6.函数
// void表示没有返回值,代表一个空值
function myFn(a:number,b:string):void{
return a+b
}
// ?代表可选的
function myFn1(a:number,b?:string):number{
return 100
}
function myFn2(a=10,b:string,c?:boolean,...rest:number[]):number{
return 100
}
const f = myFn2(20,'abc',true,1,2,3)
7.接口
interface Obj{
name:string,
age:number
}
const obj:Obj={
name:'a',
age:10
}
const obj2:Obj={
name:'a',
age:10
}
8.类型别名
type MyUserName=string|number
let b:string|number=10
let a:MyUserName='abc'
9.泛型
function myFn<T>(a:T,b:T):T[]{
return [a,b]
}
myFn<number>(1,2)
myFn<string>('a','b')
myFn('a','b')
function myFn1<T1,T2>(a:T1,b:T2){
return [a,b]
}
myFn1<any,number>(13,12)