我被困在嘗試理解typewrit lang與AMD(我使用RequireJS)模塊的東西;在jQuery.d.ts分型我已經下載from here包含以下行的文件的末尾:Typescript加載模塊頭痛
declare module "jquery" {
export = $;
}
declare var jQuery: JQueryStatic;
declare var $: JQueryStatic;
我想了解什麼是導入了jQuery模塊的最正確的方法。
到目前爲止我使用
import $ = require('jquery');
這似乎正確加載了jQuery定義類型(我的智能感知已經$對象),並在同一時間它產生的JS:
define(["require", "jquery"], function(require, $) { ... }
這樣requireJs可以在需要時正確下載庫。
1)我做對了嗎?
當使用出口=,具體的打字稿進口讓=需要導入模塊(「模塊」),必須使用導入模塊。
導入需要與早期版本的打字稿的向後兼容性存在的聲明。 ImportRequireDeclaration:import BindingIdentifier = require(StringLiteral);
2)原來是語法「進口標識符=需要(字符串)不推薦我應該改用
import * as $ from 'jquery';
3)official lang spec還表示:對於存在
出口任務與早期版本的TypeScript向後兼容。導出分配將模塊成員指定爲要導出的實體來代替模塊本身。 ExportAssignment:export = IdentifierReference ;
4)那麼jquery.d.ts中的「export = $;」語法是否被棄用?
5)如果我想我自己寫的「模塊」,我怎麼能導入使用它非親屬的方式?我不喜歡用:
import * as mymodule from '../myfolder/mymodule';
相反,我想使用:
有沒有辦法做到這一點?我應該如何申報我的模塊? 「聲明模塊」的語法? 「export =」語法?還有別的嗎?
6)我是唯一一個將這些東西(和官方文檔)真正混淆的東西嗎?
謝謝,夥計們。
謝謝basarat!順便說一句,我已經讀過你的書TypeScript深潛,這是一個偉大的工作! – user2010955