2
我注意到很多環境聲明文件declare
a namespace
和 a module
只是輸出命名空間,通常使用一些我不明白的體操。例如,在react.d.ts
你看到這一點:爲什麼環境聲明使用名稱空間和模塊?
declare namespace __React {
... entire API of the react library ...
}
declare module "react" {
export = __React;
}
- 爲什麼既是
namespace
和module
?爲什麼不直接在庫裏面聲明庫API呢? - 爲什麼命名叫
__React
而不是簡單地React
?這似乎是一個相當尷尬的「不要用我」的名字,但IntelliJ IDEA已經將我的源代碼全部導入,它似乎工作。
謝謝,這是一個非常明確的解釋,這一切現在是有道理的!有趣(煩人)是IntelliJ IDEA的總是想'導入組件= __React.Component',而不是從「反應」'即使我使用''模塊進口{}組件:commonjs'。對於接口,比如'進口MouseEventHandler = _React.MouseEventHandler'它的作品,我猜是因爲該接口是不是在編的JS引用的符號,但對於其他的東西,我得到'找不到變量:__React'。我猜IDE在這裏可能會更聰明一些。 – Aaron