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.
как показано ниже на изображении.
Я видел этот вопрос, который рекомендовал отключить проверку 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, но имею ту же проблему.
Я решил это с помощью следующих шагов:
- установить расширение Поддержка языка потока
- отключите встроенное расширение TypeScript:
Как отключить встроенный TypeScript:
- перейти на вкладку "Расширения"
- поиск @builtin TypeScript и JavaScript Особенности языка
- нажмите Отключить
Ответ 3
Используйте "javascript.validate.enable": false
в настройках вашего кода VS, он не отключает ESLINT. Я использую ESLINT & Flow. Просто следуйте инструкциям Flow For Vs Code Setup
Добавление этой строки в settings.json. Помогает "javascript.validate.enable": false