我有一個模塊取決於Backbone
。我有一個backbone.d.ts
定義,但打字稿似乎並不想編譯我的模塊,除非我的導入只使用環境定義的TypeScript模塊在amd中使用
import Backbone = module("backbone")
實際指向一個有效的骨幹模塊,而不是一個定義文件。我正在使用AMD加載的模塊,併爲骨幹網定義了requirejs填充程序。
除了創建一個虛假的backbone.ts模塊定義之外,還有一種解決方法嗎?
更新:解決方案的副作用是由於模塊不再存在,此類代碼不再有效。它需要存在,因爲requirejs墊片。我知道的唯一解決方法是有兩個.d.ts文件。一個用於使用骨幹作爲導入的文件,不包括declare module
位。另一個使用/// <reference
,包括declare module
行。
/// <reference path="../dep/backbone/backbone.d.ts" />
interface IApi {
version: number;
Events: Backbone.Events;
}
我只是在Visual Studio中嘗試這種真正的和我重新創建您的問題。讓我看看我能否解決這個問題! – Fenton
在我的測試中,我發現環境聲明必須省略'module'塊,就像AMD或CommonJS中的普通模塊一樣。 – Fenton
非常好,謝謝! – ryan