目录js方法??类型谓词is????可辨别联合类型收窄之前只能使用公共方法 JS方法 typeof 缺点 typeof null —→ objecttypeof
类型收窄之前只能使用公共方法
typeof
缺点
a instanceof A : A 是否出现在a的原型链上
缺点
不支持string
、number
、boolean
等原始类型
不支持TS的 自定义类型,如下:
type Person {
name: string
}
重点在 shape is Rect
type Rect = {
width: number
height: number
}
type Circle = {
center: [number, number]
radius: number
}
const area = (shape: Rect | Circle): number => {
if(isRect(shape)) {
return shape.width * shape.height
} else {
return Math.PI * shape.radius ^ 2
}
}
const isRect = (shape: Rect | Circle): shape is Rect => {
return 'width' in shape && 'height' in shape
}
要求:T = A | B | C
type Rect = {
type: 'rect',
width: number
height: number
}
type Circle = {
type: 'circle'
center: [number, number]
radius: number
}
const area = (shape: Rect | Circle): number => {
if(shape.type === 'rect') {
return shape.width * shape.height
} else {
return Math.PI * shape.radius ^ 2
}
}
--结束END--
本文标题: TS类型收窄教程示例详解
本文链接: https://lsjlt.com/news/167987.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0