/* Type Checking */
"strict": true
to enable all strict Type-Check options
"noImplicitAny": true
to throw
Exception when any Parameter inferred as any
"strictNullChecks": true
to throw
Exception when access Variable which potentially be null
/undefined
"strictFunctionTypes": true
to set stricter checks for functions
"strictBindCallApply": true
to set
"strictPropertyInitialization": true
to set
"noImplicitThis": true
to set
"useUnknownCatchVariables": true
to set
"alwaysStrict": true
to turn on Strict Mode
/ Additional Checks /
"noUnusedLocals": true
to warn/throw when Function Scope Variable unused (inside function)
"noUnusedParameters": true
to warn/throw when function Parameter unused (inside function)
"exactOptionalPropertyTypes": true
to set
"noImplicitReturns": true
to throw
when any function branch missing explicit return (when at least one branch has explicit return; else it's okay to omit)
"noFallthroughCasesInSwitch": true
to set
"noUncheckedIndexAccess": true
to set
"noImplicitOverride": true
to set
"noPropertyAccessFromIndexSignature": true
to set
"allowUnusedLabels": true
to set
"allowUnreachableCode": true
to set