JSDoc/JavaScript 语言服务:如何注释表达式?(如何投射)

Fab*_*tti 4 javascript casting languageservice jsdoc visual-studio-code

我使用 Visual Studio Code 并将 JavaScript 语言服务配置为:

{
    "compilerOptions": {
        "checkJs": true
    }
}
Run Code Online (Sandbox Code Playgroud)

我找不到一种方法来投射某些东西,如下所示:

错误信息

上面的示例应该可以在 Closure Compiler 中运行(未经验证),如此处所述。但我找不到 JavaScript 语言服务的等效语法。

我还尝试了以下更简单的语句,但它也不起作用:

let castedWindow = (/** @type {any} */(window));  // castedWindow: Window (I want `any`)
Run Code Online (Sandbox Code Playgroud)

我问如何进行强制转换,以及是否有人碰巧知道语法的记录位置(或者,如果没有记录,则知道它是如何工作的)。

我所问的可能吗?

谢谢你的时间!

Fab*_*tti 6

TypeScript 2.5开始,引入了对 checkJs/@ts-check 模式下的类型断言/强制转换语法的支持。

checkJs/@ts-check模式下的类型断言/转换语法

TypeScript 2.5 引入了在项目中使用纯 JavaScript 时断言表达式类型的功能。语法是一个/** @type {...} */注释注释,后跟一个带括号的表达式,其类型需要重新计算。例如:

var x = /** @type {SomeType} */ (AnyParenthesizedExpression);
Run Code Online (Sandbox Code Playgroud)