为什么我的编译器导致错误,由于编译我的.ts文件到.js?



我有两个。ts文件:

linked_list.ts

class Node {
*****
}
class LinkedList{
*****
}
export {LinkedList};

和index.ts:

import {LinkedList} from "./linked_list";
class LinkedListStack{
*****
}

我的编译器将它们编译成:

linked_list.js:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LinkedList = void 0;
var Node = /** @class */ (function () {
function Node(value) {
*****
}
}());
var LinkedList = /** @class */ (function () {
function LinkedList() {
*****
}());
exports.LinkedList = LinkedList;
//# sourceMappingURL=linked_list.js.map

和index.js:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var linked_list_1 = require("./linked_list");
var LinkedListStack = /** @class */ (function () {
function LinkedListStack() {
*****
}());
//# sourceMappingURL=index.js.map

和我得到这个错误在我的浏览器当我引用我的index.js:

索引。ts:1 Uncaught ReferenceError: require没有定义在index.ts: 1:1

我已经尝试更改我的tsconfig。Json文件到"模块"common "但是它不工作。

如果我试图改变我的"需求"one_answers";exports"在js文件中"import"one_answers";export"我在浏览器中得到这个错误:

Uncaught SyntaxError:不能在模块外使用import语句

这些是我的:index . html:

<!DOCTYPE html>
<html lang="en">
***
<body>
<script>const exports = {};</script>
<script src="js/index.js"></script>
</body>
</html>

和tsconfig.json:

{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"sourceMap": true,
"outDir": "js",
"moduleDetection": "force"
},
"type": "module"
}

CommonJS通常用于node.js项目,而不是在浏览器中。您可能希望在tsconfig中使用"module": "es2015"

https://www.typescriptlang.org/tsconfig模块

相关内容

  • 没有找到相关文章

最新更新