在TypeScript中,是否可以从URI导入模块或引用定义文件?
我们的应用程序使用RequireJS,并希望从CDN提供一些定义文件和TypeScript(或生成的JavaScript)文件,而不是直接将它们全部包含在我们的项目中。
引用定义文件
在TypeScript中,我们可以这样引用定义文件:
/// <reference path="jquery-1.8.3.d.ts" />
然而,我们想要做的是这样的:
/// <reference path="https://github.com/borisyankov/DefinitelyTyped/raw/master/jquery/jquery-1.8.d.ts" />
export class UsesSomethingFromJQuery {
TestMethod(element: JQuery) {
// Do something with the supplied element
}
}
注意:我不打算使用Boris的GitHub链接作为CDN。我使用了这个链接来演示这个概念。
导入TypeScript文件
我们还希望从一个常见的网站导入模块,像这样:
import OtherModule = module('http://some-internal-site/ts/other');
export class UsesSomethingFromOther {
TestMethod(c: OtherModule.TestClass) {
}
}
然而,当我提供一个模块的URI时,出现了“无效的导入路径”错误。
问题解决
我们有一组TypeScript文件,用于为我们的控件生成JavaScript、一些REST服务封装和其他实用程序。我们希望在其他Web应用程序中使用这些通用控件。
当我们有一个特定于其中一个网站的TypeScript文件(因此不是公共核心的一部分),依赖于在公共核心中定义的类时,我们希望使用URI引用该依赖项。因此就出现了上面的问题。
如果这些只是JavaScript源文件,我们将在内部CDN上托管它们并从那里进行引用,但是由于TypeScript编译步骤,我们遇到了问题。我们的方法是否有误?是否有更好的方法?