找不到“未定义”的模块

时间:2016-03-21 21:53:43

标签: javascript typescript

我正在尝试在Sublime Text 3中导入外部模块。外部模块 Ship.ts 是以下内容:

export interface Ship {
    name: string;
    port: string;
    displacement: number;
}

output.ts 文件包含 import Ship = require(“./ Ship”); ,此文件将保存并构建为无错误。 tsconfig.json 如下:

{
    "compileOptions": {
        "module": "commonjs"
    },
    "files": [
        "./Ship.ts"
    ]
}

然而,当查看内部和索引php页面时:

<html>
    <head>
        <script src="node_modules/commonjs-require/commonjs-require.js"></script>
        <script src="output.js"></script>
    </head>
    <body>
        Hello TypeScript
    </body>
</html>

...有一个控制台错误说commonjs-require.js:15 Uncaught Error: Cannot find module "./Ship" from "undefined"。 .ts和.js文件以及tsconfig.json文件都在同一目录中。任何帮助表示赞赏。

更新

即使我将 Ship.ts 的内容更改为:

export function greet(): void {
    console.log("Hello Ship");
} 

...转发到:

"use strict";
function greet() {
    console.log("Hello Ship");
}
exports.greet = greet;

...在尝试通过导入Ship = require(“./ Ship”)导入{发货>后,错误信息commonjs-require.js:15 Uncaught Error: Cannot find module "./Ship" from "undefined"仍未启用来自“./Ship”。

更新

还尝试在 output.ts 的顶部加入///<reference path="Ship.ts" />///<reference path="./Ship.ts" />,但无济于事。

1 个答案:

答案 0 :(得分:0)

您正在导出一个不生成任何代码的接口,并且您试图在运行时要求它。