2016-10-25 189 views
0

重疊的問題,我不知道這是否支持或不支持,但我有凡在我d.ts文件,我想有以下聲明的情景:模塊名稱打字稿

declare module final { 
    export class Test { 

    } 
} 

declare module root { 
    module final { 
     export class MainClass extends final.Test { 

     } 
    } 
} 

而且這個問題我在extends final.Test零件的類型'typeof final'中不存在TypeScript「Property'Test'」。

所以我們有一個模塊名稱重疊的問題,可以解析而不需要使名稱唯一嗎?

+0

在哪裏這些模塊存在嗎?他們在窗戶下嗎? –

+0

我正在使用NativeScript,它具有在獨立的.d.ts文件中爲原生Android/iOS庫聲明類型定義文件的「模式」,以便在開發過程中除去這些警告,它們由{N}之後的運行時間。上面的代碼片段是這些文件的簡化版本,但基本上就像您在單個文件中看到的一樣。 .ts文件中的相同內容也會引發此錯誤。 –

回答

1

無法指定您的意思是其他final模塊。
你可以做的是用不同的名稱來命名你的模塊:

declare module final1 { 
    export class Test {} 
} 

declare module root { 
    module final2 { 
     export class MainClass extends final1.Test {} 
    } 
} 

或者你也可以共享父下再放置:

declare module myModule { 
    export module final { 
     export class Test {} 
    } 
} 

declare module myModule { 
    declare module root { 
     module final { 
      export class MainClass extends myModule.final.Test {} 
     } 
    } 
} 

在瀏覽器中已經有一個共享的父母也就是窗口,你可以做:

export class MainClass extends window.final.Test {} 

但我不知道該如何在NativeScript的完成。

+0

感謝您的回覆,我很清楚我可以使用我的問題文本中所述的不同名稱,但希望看看我是否沒有遺漏某些東西。謝謝。 –

+0

然後你需要添加一個通用的父模塊 –

0

可以使用type關鍵字來聲明一個別名final.Test聲明module.root這樣前:

declare module final { 
    export class Test { 
    } 
} 

// define 'finalTest' as an alias 
type finalTest = final.test; 

declare module root { 
    module final { 
     export class MainClass extends finalTest { 
     } 
    } 
}