Javascript 使用TypeScript和RequireJS的正确方法

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 =

我想将RequireJS与TypeScript结合使用。在我的
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 ...