Recently, I found myself having to enable a slew of compiler options in my application:
"alwaysStrict": true,
"extendedDiagnostics": true,
"noFallthroughCasesInSwitch": true,
"noImplicitAny", true,
"noImplicitThis", true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"strict": true,
"strictBindCallApply": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"strictPropertyInitialization": true
These options are meant for stricter compilation, which leads to more secure and higher quality code. I'm curious as to why they are all disabled by default. More information can be found at: https://www.typescriptlang.org/docs/handbook/compiler-options.html