【问题标题】:Check interface type in TypeScript检查 TypeScript 中的接口类型
【发布时间】:2018-08-15 04:13:05
【问题描述】:
interface IData {
  firstName: string;
  lastName: string;
}

interface IDemo {
    Events: {
      GetItem: (callback: (data: IData) => void) => void;
    }
}

const item = {
  Events: {
    GetItem: //mock function
  }
}

if (item is of type IDemo)

在上述场景中,我有一个IDemo 接口,它接收一个Events 的对象,而该对象又具有一个名为GetItem 的对象——一个函数。

我想检查const item 是否属于IDemo 类型。我怎样才能做到这一点?

【问题讨论】:

标签: typescript


【解决方案1】:

由于 item 来自 ajax 响应,因此您正在寻找某种运行时类型检查。 TS 接口是编译时实体,因此您需要使用自己的 type guard. 创建自己的运行时检查

类似:

function isIDemo(item: any): item is IDemo {
    return typeof item.first === 'string' && typeof item.last === 'string';
}

【讨论】:

  • 如果不是 ajax 响应我会怎么做?
  • 我对原来的问题做了一些修改。请看一看。
猜你喜欢
  • 1970-01-01
  • 2020-04-26
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
相关资源
最近更新 更多