Я начинаю использовать TypeScript в проекте Node, над которым я работаю в Visual Studio Code. Я хотел следовать стратегии «согласия», аналогичной Flow. Поэтому я помещаю // @ts-check
вверху своего .js
файла в надежде включить TS для этого файла. В конечном счете, мне нужен такой же опыт "линтинга", как и у Flow, поэтому я установил плагин 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?
.ts
показать мне ошибки / предупреждения TS, как и ожидалось. Думаю, это может сработать, но я надеялся на использование большего количества метода подписки@ts-check
, сохраняя при этом все мои расширения как.js
Ответы:
Я использую @flow с vscode, но у меня такая же проблема.
источник
"javascript.validate.enable": false
Используйте
"javascript.validate.enable": false
в настройках VS Code, он не отключает ESLINT. Я использую как ESLINT, так и Flow. Просто следуйте инструкциям Flow For Vs Code SetupДобавляем эту строку в settings.json. Помогает
"javascript.validate.enable": false
источник
Include Languages Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and emmet supported language. E.g.: {"vue-html": "html", "javascript": "javascriptreact"}
нажмите на Edit в settings.json и добавить:"javascript.validate.enable": false
.Вы должны использовать
.ts
файл - например,test.ts
для полученияпроверки Typescript, intellisensetyping
переменных, возвращаемых типов, а также для проверки «типизированных» ошибок (например, передачаstring
методу, который ожидает, чтоnumber
параметр выдаст ошибку).Он будет перенесен в (стандартный)
.js
черезtsc
.Обновление (11/2018):
Требуются разъяснения на основе голосов против, очень полезных комментариев и других ответов.
types
Да, вы можете выполнить
type
проверку кода VS в.js
файлах с@ts-check
- как показано в анимацииТо, что я изначально имел в виду для Typescript,
types
- это что-то вроде этого, в.ts
котором не совсем то же самое:hello-world.ts
Это не будет компилироваться.
Error: Type "1" is not assignable to String
если вы пробовали этот синтаксис в файле Javascript
hello-world.js
:Отображается сообщение об ошибке, на которое ссылается OP:
[js] 'types' can only be used in a .ts file
Если я что-то пропустил, что касается этого, а также контекста OP, добавьте. Давайте все узнаем.
источник
.ts
. IINM, образцы показывают проверку ошибок и intellisense . Проблема у вас есть (статический)type
ИНГ переменные, и возвращение ,types
а также - напримерfoo:string
,bar:number
,fubar:MyClass
,myMethod(f:Array):void
,anotherMethod():string
. Hth ...@ts-check
атрибута это просто проверка ошибок JS, а не TS . Очень вводит в заблуждение ...Для тех, кто приземляется здесь, и все другие решения не работают, попробуйте. Я использую машинописный + среагировать и моя проблема заключалась в том , что я ассоциирует файлы в vscode , как
javascriptreact
неtypescriptreact
так , проверьте настройки для следующих записей.источник