Javascript 使用TypeScript和RequireJS的正确方法
我想将RequireJS与TypeScript结合使用。在我的Javascript 使用TypeScript和RequireJS的正确方法,javascript,typescript,requirejs,Javascript,Typescript,Requirejs,我想将RequireJS与TypeScript结合使用。在我的index.html文件中,我包含了以下行(查看datamain属性): TypeScript编译器生成如下内容: define(['require', 'exports', 'MyClass'], function (require, export, MyClass_1) { ... require.config({ paths: {'MyPackage': 'path/to/MyPackage'}}); var t =
index.html
文件中,我包含了以下行(查看datamain
属性):
TypeScript编译器生成如下内容:
define(['require', 'exports', 'MyClass'], function (require, export, MyClass_1) {
...
require.config({ paths: {'MyPackage': 'path/to/MyPackage'}});
var t = new MyClass_1();
});
但是前面编译的代码会生成以下错误:
未捕获类型错误:require.config不是函数
这是因为require.config
函数不应该在define([…]),…
函数内。如果我将require.config
函数移到define
函数外,所有功能都可以正常工作
附加注释:
我将我的应用程序声明为AMD模块(tsconfig.json):
我用这种方法解决了这个问题:
但我对这个解决方案不是很满意。它看起来有点棘手。你将如何解决这个问题
/// <reference path="path/to/MyPackage.d.ts" />
require.config({ paths: {'MyPackage': 'path/to/MyPackage'}});
import {MyClass} from 'MyPackage';
new MyClass();
define(['require', 'exports', 'MyClass'], function (require, export, MyClass_1) {
...
require.config({ paths: {'MyPackage': 'path/to/MyPackage'}});
var t = new MyClass_1();
});
{
"compilerOptions": {
"module": "amd",
... more directives ...