ts 类型使用?

image.png
addPopup 方法 传入值我希望限制为 AddDisplayItem (提示 使用者对象的zIndex不能自定义),但我后续操作都是将它看作 DisplayItem 类型;这要怎么做呢?

阅读 2.1k
2 个回答

如果你能确保传入类型为 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 了
  }
}
新手上路,请多包涵

123

logo
Microsoft
子站问答
访问
宣传栏