ts 类型使用?
addPopup 方法 传入值我希望限制为 AddDisplayItem (提示 使用者对象的zIndex不能自定义),但我后续操作都是将它看作 DisplayItem 类型;这要怎么做呢?
回复
1个回答
test
2024-06-29
如果你能确保传入类型为 DisplayItem
,那么可以简单的使用 as
类型断言即可,示例如下:
function func(data: AddDisplayItem) {
if ("zIndex" in data) {
const it = data as DisplayItem;
// 现在可以安全的访问 it.zIndex 了
}
}
或者可以使用类型保护更优雅一点,示例如下:
function isDisplayItem(data: AddDisplayItem): data is DisplayItem {
return "zIndex" in data;
}
function func(data: AddDisplayItem) {
if (isDisplayItem(data)) {
// 现在可以安全的访问 data.zIndex 了
}
}
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容