microsoft / vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code.
Other
5.52k stars 1.55k forks source link

Revisit use of `typedef` linting rule #10573

Open csnover opened 1 year ago

csnover commented 1 year ago

PR #10559 fails due to linter errors about a lint that probably should not be enabled.

The use of typedef lint was added to vscode-cpptools in https://github.com/microsoft/vscode-cpptools/pull/1403 with the comment “explicit types is recommended Typescript practice”, but this is not correct. Actually, the documentation for this lint explicitly states the opposite:

Requiring type annotations unnecessarily can be cumbersome to maintain and generally reduces code readability. TypeScript is often better at inferring types than easily written type annotations would allow.

Instead of enabling typedef, it is generally recommended to use the --noImplicitAny and --strictPropertyInitialization compiler options to enforce type annotations only when useful.

The compiler is already using the given flags as strict: true is set, so I would recommend to remove this lint as it adds line noise and runs against best practices.

Let me know your thoughts. Thanks!

sean-mcmanus commented 1 year ago

I'm fine with changing the linting rule, but you should wait to see what others think. @WardenGnaw @bobbrow @Colengms @michelleangela

bobbrow commented 1 year ago

I'm ok to change the rule. CMake Tools doesn't have it, and I think it's nice not to have to declare types in some cases where it is obvious what it is.

sean-mcmanus commented 1 year ago

Yeah, similar to "auto" usage with C++.

csnover commented 1 year ago

Is there any other feedback on this? Otherwise it sounds like the change should be made and I will open another PR for that. Thanks!