Union Types 称为联合类型,就是把存在的类型进行组合成为一个新的类型。比如我们定义一个函数:可以接收字符串或数字。
function print(id:string | number){
console.log(id)
}
当你要对参数做一些操作时,TypeScript 只允许联合的所有类型都有的方法。
function print(id:string | number){
console.log(id.toUpperCase())
}
这样就会报错,因为 number
没有 toUpperCase
方法。解决方法是:使类型更加精准。
function print(id:string | number){
if(typeof id === 'string'){
console.log(id.toUpperCase())
}else{
console.log(id)
}
}
还有一种情况,联合的类型有相同的方法:
function print(id:number[] | string){
console.log(id.slice(0,3))
}