联合类型(|)
联合类型,或者的意思
let numberOrString: number | string;
交叉类型(&)
交叉类型,两个都需要
interface a {
name: string;
}
interface b {
age: number;
}
type obj = a & b;
let obj1: obj = {
name: 'dj',
age: 11
}
类型断言
使用 as 关键字可以告诉 ts 我们是什么类型
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
}}
类型守卫
typescript 在不同的条件分支里面,智能的缩小了范围,这样我们代码出错的几率就大大的降低了。
function getLength2(input: string | number): number {
if (typeof input === 'string') {
return input.length
} else {
return input.toString().length
}}
网友评论