js 'types' может использоваться только в файле.ts - код Visual Studio с помощью @ts-check

Я начинаю использовать TypeScript в проекте Node, над которым я работаю в Visual Studio Code. Я хотел следовать стратегии "opt-in", аналогичной Flow. Поэтому я помещаю //@ts-check в начало моего .js файла в надежде включить TS для этого файла. В конце концов, мне нужен тот же опыт "перемычки", как "Поток", поэтому я установил плагин TSLint, чтобы я мог видеть предупреждения/ошибки Intellisense.

Но с моим файлом выглядит:

// @ts-check

module.exports = {
  someMethod: (param: string): string => {
    return param;
  },
};

и мой файл tsconfig.json выглядит как...

{
  "compilerOptions": {
      "target": "es2016",
      "module": "commonjs",
      "allowJs": true
  }
}

Я получаю эту ошибку: [js] 'types' can only be used in a.ts file. как показано ниже на изображении.

error from vscode for ts

Я видел этот вопрос, который рекомендовал отключить проверку javascript в vscode, но затем это не показывает мне никакой информации о TypeScript Intellisense.

Я попытался установить tslint.jsEnable в true в настройках моего vscode, как указано в документах расширения TSLint, но там не повезло.

Какая правильная настройка для использования .js файлов с использованием TypeScript и получения Intellisense, поэтому я знаю, какие ошибки в моем коде есть, прежде чем запускать какие-либо команды TS?

Ответы

Ответ 1

Вы должны использовать файл .ts например test.ts чтобы получить проверку подлинности по машиночитаемым текстам, intellisense typing of vars, типы возвращаемых данных, а также "типизированную" проверку ошибок (например, передача string методу, который ожидает, что number param будет ошибочно),

Он будет транслироваться в (стандартный) .js через tsc.

Ответ 2

Я использую @flow с vscode, но имею ту же проблему.

Я решил это с помощью следующих шагов:

  1. установить расширение Поддержка языка потока
  2. отключите встроенное расширение TypeScript:

Как отключить встроенный TypeScript:

  1. перейти на вкладку "Расширения"
  2. поиск @builtin TypeScript и JavaScript Особенности языка
  3. нажмите Отключить

Ответ 3

Используйте "javascript.validate.enable": false в настройках вашего кода VS, он не отключает ESLINT. Я использую ESLINT & Flow. Просто следуйте инструкциям Flow For Vs Code Setup

Добавление этой строки в settings.json. Помогает "javascript.validate.enable": false