3

是否有可能在TypeScript中導入節點模塊,但實際上並未在編譯後導入?TypeScript只作爲聲明導入?

我的意思:
我在一個文件中創建一個全局變量稱爲intellisense.ts在我稱之爲:

import * as fs from 'fs'; 

然後在另一個文件中引用它想:

/// <reference path="./intellisense.ts" /> 
fs.existsSync('...'); 

在這一點VSCode intellisense告訴我,它無法找到名稱'fs'。

有沒有辦法解決這個問題,而無需在其他文件中導入fs?

請注意:

  • 我需要有FS進口只有一次
  • 我不想FS從intellisense.ts出口
  • 我不想導入intellisense.ts在任何方式
  • 我確實想在全球範圍內FS只能作爲參考
+0

你不能擁有這一切。如果你想使用'fs',那麼你需要從'intellisense.ts'中導出它,並且你需要將它導入到你想使用它的地方。另一種選擇是在'intellisense.ts'中有一個導出函數,它將在內部使用導入的'fs'。在任何情況下,僅僅引用該文件將僅用於編譯,但是當您嘗試運行它時,將會出現錯誤。 –

回答

0

我的CR在文件中出現全局變量

這不是全局變量。它是該文件中的一個導入模塊。您需要在使用它們的每個文件中明確導入模塊。

更多

https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

+0

不幸的是,你似乎是對的......儘管打字稿應該有這種東西的全球範圍,但真的很難過。 反正謝謝! –