这是非常简单的代码:
"use strict";
import * as express from "express";
class Server {
public app: express.Application;
public static run(): Server {
return new Server();
}
constructor() {
this.app = express();
}
}
var server = Server.run();
export = server.app;
当我尝试编译tsc app.ts
时,我收到错误:
app.ts(18,10):错误TS2503:找不到名称空间'server'。
尽管错误TSC创建输出文件(app.js)
为什么我会收到错误?我做错了什么?
答案 0 :(得分:3)
我将您的最后一行更改为export default server.app
并且编译得很好。
您有一个commonjs样式导出语句,而不是一个打字稿期望的ES6导出语句。
请参阅https://www.typescriptlang.org/docs/handbook/modules.html
的导出语法的打字稿规范 Typescript确实支持某些export =
语法,但它仅限于类,接口,命名空间,函数或枚举。
文档说明:
export =语法指定从模块导出的单个对象。这可以是类,接口,命名空间,函数或枚举。“