Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在TypeScript中使用instanceof_Node.js_Typescript_Express - Fatal编程技术网

Node.js 在TypeScript中使用instanceof

Node.js 在TypeScript中使用instanceof,node.js,typescript,express,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为我显示了express.Application……instanceof express.Application…的此错误: [

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

import * as express from "express";

function doStuff(app: express.Application) {
  if (!(app instanceof express.Application)) throw new TypeError();
  // etc...
}
VSCode为我显示了express.Application…
…instanceof express.Application…
的此错误:

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


我做错了什么?

instanceof是一个Javascript操作符。右侧操作数必须是运行时值(函数或构造函数),才能正常工作


express.应用程序
被定义为一个接口。接口仅在编译时存在,以帮助进行类型检查。这意味着在运行时,
instanceof
操作中没有
express.Application
值作为操作数,因此typescript会发出错误。

instanceof
是一个Javascript操作符。右侧操作数必须是运行时值(函数或构造函数),才能正常工作


express.应用程序
被定义为一个接口。接口仅在编译时存在,以帮助进行类型检查。这意味着在运行时,
instanceof
操作中没有
express.Application
值作为操作数,因此typescript会发出错误。

谢谢,这是有意义的。我可以使用duck输入来获得相同的结果,尽管这很麻烦。。。有其他选择吗?@Ionix由于类型已定义,您只能检查是否存在特定属性,这是有意义的。我可以使用duck输入来获得相同的结果,尽管这很麻烦。。。有其他选择吗?@Ionix定义类型后,您只能检查是否存在特定属性