typescript 无法从“undefined”中找到模块

6yoyoihd  于 2022-11-26  发布在  TypeScript
关注(0)|答案(1)|浏览(217)

我试图在我的Sublime Text 3中导入一个外部模块。外部模块Ship.ts如下所示:

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

output.ts文件中包含**import Ship =必填项(./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;

......在尝试通过import Ship = require(“./Ship”)import {Ship} from“./Ship”进行访问后,错误消息commonjs-require.js:15 Uncaught Error: Cannot find module "./Ship" from "undefined"仍然显示。

更新

还尝试在output.ts的顶部包含///<reference path="Ship.ts" />///<reference path="./Ship.ts" />,但没有效果。

2nc8po8w

2nc8po8w1#

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

相关问题