我正在並行學習TypeScript和Dojo,這暴露了我對AMD的有限理解。我不明白如何將導入聲明與第三方「dgrid/Grid」AMD模塊,我的dgrid.d.ts存根聲明和我的消費類綁定在一起。之後無用功2天我在尋找任何方式(哈克或AMD的最佳做法)執行以下操作:從TypeScript中引用dgrid的導入語法
MyModule.ts
{
...
var myGrid = new dgrid.Grid({ /*col structure*/}, "divId");
...
}
這裏是我的dgrid存根聲明文件。
dgrid.d.ts紅色(編輯下面更新1同步)
module "dgrid/Grid"
{
export class Grid
{
constructor (gridStructure: any, elementId: string);
}
}
我想在我的消費類打字稿下面的參考,但Visual Studio中強調了「dgrid /網格」字面因爲我猜測TS編譯器並不知道default.htm文件中的經典Dojo dojoConfig,baseUrl和dgrid包聲明。
///<reference path='dgrid.d.ts' />
import Grid = module("dgrid/Grid");
module MyModule
{
...
}
更新1 發佈以來,通過我在正式打字手冊第10章讀取。以前,我沒有認識到聲明爲模塊MyType {}或模塊「external/thirdparty」{}的模塊的重要性。外部模塊的環境聲明應該是文字。
背景:
- 我使用道場1.8.0從ajax.googleapis.com引用
- 的dgrid了JavaScript/JS本地託管/ dgrid
- 我試圖密切按照SitePen接觸dgrid教程 頁面展示經典AMD需要()的dgrid http://dojofoundation.org/packages/dgrid/tutorials/hello_dgridhttp://dojofoundation.org/packages/dgrid/tutorials/hello_dgrid/demo/simple.html
要求聲明:
require(["dgrid/Grid", "dojo/domReady!"],
function(Grid){
尚無工作解決方案。我還沒有放棄這個問題,TypeScript導入語句正在生成AMD樣式的模塊代碼加載代碼,但它並未將加載的模塊實現爲新的(abe)類型。我看到整個模塊名稱空間位於原型之下。我會發布另一個SO問題來解決這個問題。 – camelCase
好的。你能在這裏發佈一個關於這個問題的鏈接嗎? – Valentin