我有一組的打字稿文件被編譯成*.d.ts
文件,它不斷雖然示數對我來說:打字稿定義文件內部模塊
systems.debug.d.ts(280,41): error TS2094: The property 'Models' does not exist on value of type 'Systems'.
聲明如下:
declare module Systems.Services.Stuff {
class DefaultHubService {
public Send(entry: Systems.Models.IEntry, successCallback: Function, failureCallback: Function): void;
}
}
這發生在280線(systems.debug.d.ts)
,它正在努力參考的東西是:
declare module Systems.Models {
interface IEntry {
Version: string;
Content: KnockoutObservableString;
DateCreated: KnockoutObservableDate;
CreatorAccountId: KnockoutObservableString;
}
}
這是239線(systems.debug.d.ts)
,所以我覺得很奇怪,不知道如何解決這個問題。由於界面包含在服務之前,它應該對我的知識起作用,除非TypeScript存在一些問題。任何人都可以解釋錯誤?
== ==編輯
只是提供一些額外的信息櫃面它可以幫助診斷問題...
實際實現是這樣的:
// Systems/Services/Stuff/default-hub-service.ts
module Systems.Services.Stuff {
export class DefaultHubService {
public Send(entry: Models.IEntry, successCallback: Function, failureCallback: Function): void
{
// Do something here
}
}
}
// Systems/Models/ientry.ts
module Systems.Models {
export interface IEntry {
Version: string;
Content: KnockoutObservableString;
DateCreated: KnockoutObservableDate;
CreatorAccountId: KnockoutObservableString;
}
}
有中沒有引用個人文件,因爲我有一個根級別的參考文件,其中包含所有要使用的外部引用,並且因爲它首先包含在編譯參數中,它提供了所有外部依賴關係(即knockout.d.ts,jquery.d.ts等) 。
我正在使用Typescript 0.9.0.1,並通過直接從我的構建腳本調用tsc.exe進行編譯。最後,javascript輸出文件創建時沒有錯誤,所以我有一個systems.debug.js
編譯好,但是聲明標誌只有它引發錯誤的d.ts文件。
我不知道該告訴你什麼,我編譯多個文件,當生成'* .js'文件時,'* .d.ts'文件記錄上面顯示的錯誤,以及其他一些錯誤一模一樣。其他東西發現模塊內找不到。我忽略了保持簡單問題的唯一的事情是我也引用了其他生成的'* .d.ts'文件(它不會出錯並且看起來很好)。因此,例如'Systems'模塊引用'Shared'模塊,但共享編譯好的沒有問題。有0 *真正*錯誤,就像這些無法找到錯誤中的10個。 – Grofit
你使用的是TypeScript 0.9.0.1還是早期版本? – Fenton
我正在使用最新版本0.9.0.1,我將嘗試通過打字機遊樂場以後運行我的文件(如在我的家用機器上)。看看是否標記任何東西。我發現奇怪的另一件事是實際的類實現不包含命名空間的系統部分,但聲明放入它,我沒有看到它做任何錯誤,但不知道如果這是與它有什麼關係或一個紅色的鯡魚......將在它幫助的問題中放入示例類實現。 – Grofit