如何使用 JSDOC 记录全局变量的类型

Dan*_*ina 8 javascript global-variables jsdoc

我有一段在浏览器上运行的代码。有一个从 CDN 加载的库,它将一些变量放在全局范围内。我如何记录该变量的类型?

例如

index.hmtl => 置于globalVariable全局范围

...
<script src="//cdn.library.com/library.js"></script>
...
Run Code Online (Sandbox Code Playgroud)

index.js => 使用globalVariable

/**
 * @type {SomeType} globalVariable
 */
const foo = globalVariable()
Run Code Online (Sandbox Code Playgroud)

类似的东西,所以我可以指定globalVariable. 那可能吗?

Gra*_*ath 5

类型转换和window全局可以成为你的朋友。

投射:

const globalVariable = /** @type {someType} */ (window.globalVariable);
Run Code Online (Sandbox Code Playgroud)

要修改window全局,请添加一个 externs 文件,其中包含:

/** @type {someType} */
window.prototype.globalVariable = function() {};
Run Code Online (Sandbox Code Playgroud)