I am starting to use TypeScript in a Node project I am working on in Visual Studio Code. I wanted to follow the "opt-in" strategy, similar to Flow. Therefore I put // @ts-check at the top of my .js file in hope to enable TS for that file. Ultimately I want the same experience of "linting" as Flow, therefore I installed the plugin TSLint so I could see Intellisense warnings/errors.
But with my file looking like:
// @ts-check
module.exports = {
someMethod: (param: string): string => {
return param;
},
};
and my tsconfig.json file looking like...
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"allowJs": true
}
}
I get this error: [js] 'types' can only be used in a .ts file. as shown below in the image.
I saw this question which recommended disabling javascript validation in vscode but then that doesn't show me any TypeScript Intellisense info.
I tried setting tslint.jsEnable to true in my vscode settings as mentioned in the TSLint extension docs but no luck there.
What is the correct setup in order to use .js files with TypeScript and get Intellisense so I know what the errors in my code are before I run any TS commands?
I'm using flow with vscode but had the same problem. I solved it with these steps:
Install the extension Flow Language Support
Disable the built-in TypeScript extension:
Use "javascript.validate.enable": false in your VS Code settings, It doesn't disable ESLINT. I use both ESLINT & Flow. Simply follow the instructions Flow For Vs Code Setup
Adding this line in settings.json. Helps
"javascript.validate.enable": false
I followed following steps to fix the issue:
Go to Preferences and then to settings:

After going to settings search for javascript.validate in the search bar and uncheck the checkbox:

if you want to edit it via json then:
Go to: Code -> Preferences -> Settings -> Extensions -> Scroll down and find "Edit in settings.json".
then add
"javascript.validate.enable": false