3

我正在使用带有 JavaScript 语言服务的 Visual Studio Code,配置为:

{
    "compilerOptions": {
        "checkJs": true
    }
}

而且我找不到投射东西的方法,比如这里:

错误信息

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

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

let castedWindow = (/** @type {any} */(window));  // castedWindow: Window (I want `any`)

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

我要问的甚至可能吗?

谢谢你的时间!

4

1 回答 1

3

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

checkJs在/@ts-check模式下键入断言/强制转换语法

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

var x = /** @type {SomeType} */ (AnyParenthesizedExpression);
于 2018-02-26T12:45:48.517 回答