我有两个。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"
。