私は TypeScript と Dojo を並行して学習していますが、これにより、AMD に関する私の限られた理解が明らかになりました。import ステートメントをサードパーティの「dgrid/Grid」AMD モジュール、dgrid.d.ts スタブ宣言、および消費クラスに結び付ける方法がわかりません。2日間の無駄な努力の後、次のことを実行するための手段(ハッキーまたはAMDのベストプラクティス)を探しています:
MyModule.ts
{
...
var myGrid = new dgrid.Grid( { /*col structure*/}, "divId");
...
}
dgrid のスタブ宣言ファイルは次のとおりです。
dgrid.d.ts (以下の Update 1 と同期するように編集)
module "dgrid/Grid"
{
export class Grid
{
constructor ( gridStructure: any, elementId: string);
}
}
使用する TypeScript クラスで次の参照を試しましたが、Visual Studio は「dgrid/Grid」リテラルに赤で下線を引いています。これは、TS コンパイラーが default.htm ファイル内の従来の Dojo dojoConfig、baseUrl、および dgrid パッケージ宣言を認識していないと思われるためです。
///<reference path='dgrid.d.ts' />
import Grid = module("dgrid/Grid");
module MyModule
{
...
}
更新 1 投稿以来、公式の TypeScript マニュアルの第 10 章を読みました。以前は、module MyType{} または module "external/ thirdparty" {} として宣言されたモジュールの重要性を認識できていませんでした。外部モジュールのアンビエント宣言はリテラルである必要があります。
バックグラウンド:
- ajax.googleapis.com から参照されている Dojo 1.8.0 を使用しています
- dgrid JavaScript は /js/dgrid でローカルにホストされます
- dgrid http://dojofoundation.org/packages/dgrid/tutorials/hello_dgrid http://dojofoundation.org/packages/dgrid/tutorials/hello_dgridの従来の AMD の require() 読み込みを示す SitePen dgrid チュートリアル ページを厳密にフォローしようとしてい ます。 /demo/simple.html
Require ステートメント:
require(["dgrid/Grid", "dojo/domReady!"],
function(Grid){