我在“ main.ts”中有一个打字稿外部模块,该模块仅导出单个函数,其编写方式如下:
// ...
import O = require('./Options');
"use strict";
function listenRestRoutes(expressApp: any, options?: O.IOptions) {
// ...
}
module.exports = listenRestRoutes;
这个编译好。我还有另一个文件,其中导入了此模块:
// ...
import express = require('express');
import mipod = require('./main');
import O = require('./Options');
// ...
var app = express();
var opts: O.IOptions = O.Options.default();
// ...
mipod(app, opts);
最后一行未编译,提示错误TS2088:无法调用类型缺少调用签名的表达式。mipod(app,opts);
我不明白为什么会收到此错误。尽管出现此错误,但javascript仍正确生成并运行良好。那么,这是编译器错误,还是我的代码中存在错误?
PS:我还尝试在第二个文件的顶部添加引用:
/// <reference path="./main.ts" />
但这并没有改变任何东西。
TypeScript不会解析module.exports
类型信息的分配。代替此行:
module.exports = listenRestRoutes;
用这个
export = listenRestRoute;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句