联合类型 和类型断言
- 一个变量可以有 有两种的类型定义 |符号连接。
- 如果在联合类型不确定类型的情况下只能使用联合 类型 的共有的方法。
- 只有在确定类型的时候 。才能使用 确定类型的方法。比如 string 类型的length 在不确定是string的时候不能使用。但是们可以用 if 或者as 进行类型断言。在不赋值情况下 进行类型断言(ps 类型断言后就能用对应断言类型的 独有的方法了)。
// type inference
let str = 'str'
str = 'www.z88j.com'
// union types
let numberOrString:number |string
function getLength(input:string |number) :number{
const str = input as string//类型断言
if (str.length){
return str.length
}else{
const number = input as number
return number.toString().length
}
}
//type guard
function getLength2(input:string |number) :number{
if (typeof input === 'string'){//if 类型断言
return input.length
}else{
return input.toString().length
}
}
原创文章,作者:星辰,如若转载,请注明出处:https://www.z88j.com/391.html