打字稿错误:app.ts(18,10):错误TS2503:找不到命名空间'server'

时间:2017-02-20 09:37:52

标签: typescript

这是非常简单的代码:

"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)

为什么我会收到错误?我做错了什么?

1 个答案:

答案 0 :(得分:3)

我将您的最后一行更改为export default server.app并且编译得很好。

您有一个commonjs样式导出语句,而不是一个打字稿期望的ES6导出语句。

请参阅https://www.typescriptlang.org/docs/handbook/modules.html

的导出语法的打字稿规范

Typescript确实支持某些export =语法,但它仅限于类,接口,命名空间,函数或枚举。

文档说明:

  

export =语法指定从模块导出的单个对象。这可以是类,接口,命名空间,函数或枚举。“