2016-06-12 66 views
2

我想添加一個打字稿聲明文件我的節點模塊中,但在VS代碼另一個項目中使用,當它在一個錯誤運行:打字稿聲明文件給我的錯誤VSCode

出口外包裝typings file .../ttk.d.ts不是模塊

問題中的ttk.d.ts文件是here

奇怪的是,在VS代碼中,我使用聲明文件獲得了自動完成。有誰知道我做錯了什麼?

編輯:這是測試文件導入模塊:

const ttk = require('ttk'); 

const t = ttk.factory(); 
const r = t`Hello, ${'@name'}!`; 
const s = r({ name: 'World' }); 

console.log(s); 
+0

你如何導入它? – Zen

+0

使用該代碼更新後。類型在package.json中定義:https://github.com/maexsoftware/ttk/blob/ttk.d.ts/package.json#L26 – Kylee

+0

修復了無法鏈接到tkk.d.ts的帖子;上面評論中package.json的歷史鏈接是[here](https://github.com/maexsoftware/ttk/blob/0d6e435d449a1549d22c0f3c5c96fb7c09f2a963/package.json#L26) – ZachB

回答

3

基本上文件被聲明爲全局代碼(因爲它沒有一個頂級進口或出口),但TypeScript期待文件成爲一個模塊。

如果你看看多數民衆贊成被引用的.d.ts,需要的declare module "ttk"內容被移出到頂層,以便該文件被認爲是一個模塊。

我發了公關來解決這裏的問題:https://github.com/maexsoftware/ttk/pull/7

希望幫助!

+0

是的,這就是它。也許我有點密集,但是關於編寫聲明文件的文檔並不儘可能簡潔明瞭。謝謝! – Kylee

+0

如果我正在查看正確的位,文檔實際上似乎是錯誤的。它們顯示它被包裝在一個模塊中,就像你所擁有的一樣:https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html#function-as-an-module – ZachB

+0

嘿,它即將被更新到有固定的:) https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/declaration%20files/By%20Example.md – ZachB