在TypeScript中使用instanceof

时间:2019-01-20 06:52:14

标签: node.js typescript express

考虑以下基本节点+ ts代码:

import * as express from "express";

function doStuff(app: express.Application) {
  if (!(app instanceof express.Application)) throw new TypeError();
  // etc...
}

VSCode向我显示了...instanceof express.Application...的错误:

  

[ts]属性'Application'在类型'typeof e'上不存在。 [2339]

我在做什么错了?

1 个答案:

答案 0 :(得分:3)

instanceof是Javascript运算符。右侧操作数必须是运行时值(函数或构造函数)才能起作用。

express.Application被定义为接口。接口仅在编译时存在,以帮助类型检查。这意味着在运行时,express.Application操作中没有instanceof值作为操作数,因此打字稿会发出错误消息。