常用类型
let str: string = 'hallo ward'
let num: number = 1 // -30 or 20
let bool: boolean = false // true or false
数组
let arr: number[] = [1,2,3]
let arr2: Array<number> = [1,2,3]
arr = ['a'] // 报错 数组的值只能为number 类型
arr = [] // 不报错 可以为空
any 禁用所有的类型检查
let obj: any = {
x: 0,
a:'1'
}
let a: any[] = [0,'1',2]
let b: Array<any> = [0,'1','2']
函数
function add(name: string):void {
console.log(name)
// 指定 形参name 的类型
// void 返回值类型注释 可以不指定 有些第三方库会强制制定
}
add('22')
function add1(): number {
// void ts会自动推断出是number类型 不推荐该写法
return 1
}
add1()
匿名函数
let arr = ['1','2','3']
arr.forEach((f)=>{
// 会自动推断 f 为字符串 下方调用不出错
console.log(f.toLowerCase())
})
对象类型
function get(pt:{x: number,y: number}){
console.log(pt.x, pt.y)
}
get({x: 1,y: 2})
// 可选参数 y? 表示用户可以不传
function get1(pt:{x: number,y?: number}){
console.log(pt.x, pt.y)
}
get1({x: 1})
联合类型
function get(y: number | string){
if(typeof y === "string"){
// 类型判断
console.log(y.toLowerCase())
}
console.log(y)
}
get(2)
get('3')
function click (a: string[] | string) {
if(Array.isArray(a)){
console.log('11'+a.join('and'))
}else{
console.log(a)
}
}
click('12')
click(['ddd','ggg'])