有一種方法導入或註釋打字稿模塊,使得產生AMD-兼容模塊?:自動將AMD代碼包含在Typescript AMD模塊中?
tsc --module AMD example.ts
當我試圖包括包括參考外部AMD模塊將自動被包括作爲依賴性* .d.ts文件和導出聲明語句:
///<reference path='./lib/knockout-2.2.d.ts' />
export declare var $;
export declare var _;
export module example {
export class Example {
// whatever
}
}
但是生成的模塊不包括這些:
define(["require", "exports"], function(require, exports) {
(function (example) {
var Example = (function() {
function Example() { }
return Example;
})();
example.Example = Example;
})(exports.example || (exports.example = {}));
var example = exports.example;
})
真的想避免在這裏創建「假」模塊。
這似乎是一個很好的解決方案和使用是允許直接導入AMD模塊:
var $ = import('jquery'); // This is a requirejs/AMD module, not a typescript file.
,但我不知道這是怎麼可行。
編輯:
而且我也試過這種方法這裏所說:Import TypeScript module using only ambient definition for use in amd
import knockout = module("./lib/knockout-2.2.d.ts");
...
但獲得這些編譯器錯誤:
example.ts(1,32): The name '"./lib/knockout-2.2.d.ts"' does not exist in the current scope
example.ts(1,32): A module cannot be aliased to a non-module type
你找到一個很好的解決方案? –
不 - 在我的情況下,我開始意識到將我的Typescript應用程序連接到單個文件('tsc -out')會更容易,而不必擔心AMD,因爲不會懶惰加載任何內容。 – 7zark7
我剛剛找到/// - 但是可以在我回家時先測試它。 –