This is a new feature added in Visual Studio Code called "Suggestion Code Actions". "Suggestion Code Actions" are enabled by default in JavaScript and TypeScript.
You can disable them by setting: "typescript.suggestionActions.enabled": false or "javascript.suggestionActions.enabled": false in your user/workspace settings. The documentation can be found here.
Actually this annoying suggestion comes from TypeScript.
Thus, to turn off this suggestion, you can modify the source code of TypeScript, compile it, then tell vscode to use your fork of TypeScript.
As a quick and dirty hack, just remove the logic related to ts.Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module, then compile the project following the instructions on TypeScript's README.
The compilation will fail because removing the related logic causes some functions become unused, then you just remove those unused function definitions and recompile the project (gulp clean && gulp local).
After you successfully compile your fork of TypeScript, then change your user settings.json to point to your vscode fork:
Restart your vscode, and the annoying suggestion has gone.
You can check this commit to see which source files of TypeScript need to be modify.
Warn: the modification is quick and dirty, use them at your own risk. If you find anything wrong, you can just remove the tsdk configuration, to switch back to vscode's built-in TypeScript.
Alert! This approach might be too much for VSCode users who love the intelligent coding assistance. Use it as a simple & quick help, together with other linting & testing utilities.
The control of the presence of the said message is located in Settings => Extensions => TypeScript. (TypeScript !!! :P)
As shown in screenshot, I searched in Settings with keyword "validate", then click TypeScript. It's the first item.
For anyone using Neovim with Native LSP and nvim-lspconfig for setting up your language servers, you can disable suggestions by adding this somewhere in your tsserver setup:
You can also use the nvim-lsp-ts-utils plugin to filter out this specific diagnostic message while keeping suggestions enabled by adding this somewhere in your tsserver setup:
If your project is "type": "module" and you need to have a CommonJS file in it, e.g. to configure ESLint (which doesn't support ESM as of writing this), then just rename it from *.js to *.cjs (or from *.ts to *.cts, if appropriate), and the suggestion will go away. The fix for this has shipped with TypeScript 4.5.1 about a year ago.