我是一名C#开发人员,在尝试学习Typescript时几乎没有网络经验。我正在敲响这条错误信息。
0x800a1391 - JavaScript runtime error: 'require' is undefined
简而言之,我已经构建了一个带有Typescript代码的Html应用程序。我使用VS2015作为我的IDE。除了我项目中的app.ts和index.html,我有5个Typescript文件,其中每个文件只包含一个类(这是我的C#遗产)。
在app.ts中,我尝试在window.onload Javascript事件中实例化一个类。在window.onload正上方,我尝试导入我的一个类。
import {ClassA} from "./ClassA.ts";
window.onload = () => {
var cls = new ClassA();
cls.doSomething();
};
当我尝试运行此代码时,我在import语句的问题中收到错误消息。凭借对Typescript的非常基本的了解,我尝试了:
在app.ts的顶部添加以下路径。它没有用。
///<reference path="require.d.ts" />
///<reference path="jquery.d.ts" />
///<reference path="node.d.ts" />
我很确定这是一个没有使用过类型手稿经验的人的新手错误。有人知道如何解决这个问题吗?
谢谢
答案 0 :(得分:0)
如果您要构建网络,则需要使用其他工具进行模块解析(webpack,browserify等),或者不使用模块。
如果您使用编译器选项outFile
和"module": "none"
,则将得到一个文件,其中没有可以直接在浏览器中运行的模块。
tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "none",
"outFile": "./lib/out.js"
}
}
ClassA.ts(不导出)
class ClassA {
// stuff
}
app.ts(不导入)
///<reference path="./ClassA.ts" />
window.onload = () => {
var cls = new ClassA();
}
将转换为:
var ClassA = /** @class */ (function () {
function ClassA() {
}
return ClassA;
}());
///<reference path="./ClassA.ts" />
window.onload = function () {
var cls = new ClassA();
};