Языковая служба JSDoc/JavaScript: как аннотировать выражение? (как кастовать)

Я использую код Visual Studio с языковой службой JavaScript, настроенной как:

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

И я не могу найти способ что-то разыграть, как здесь:

Сообщение об ошибке

Приведенный выше пример должен работать в Closure Compiler (не проверено), как описано здесь. Но я не могу найти эквивалентный синтаксис для JavaScript Language Service.

Я также попробовал следующее простое утверждение, которое тоже не работает:

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

Я спрашиваю, как делать приведения, и если кто-то знает, где задокументирован синтаксис (или, если он недокументирован, как он работает).

Возможно ли то, что я спрашиваю?

Спасибо за ваше время!

1 ответ

Решение

Начиная с TypeScript 2.5, была введена поддержка синтаксиса утверждения типа / преобразования типов в режиме checkJs/@ts-check.

Введите синтаксис утверждения / приведения в checkJs/@ts-check Режим

TypeScript 2.5 предоставляет возможность утверждать тип выражений при использовании простого JavaScript в ваших проектах. Синтаксис является /** @type {...} */ комментарий к аннотации с последующим выражением в скобках, тип которого необходимо переоценить. Например:

var x = /** @type {SomeType} */ (AnyParenthesizedExpression);
Другие вопросы по тегам