In this Hasty Treat, Scott and Wes talk about the Typescript strict flag — what it does and why you might use it.Sanity - Sponsor
Sanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.LogRocket - Sponsor
LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.Show Notes
02:50 - What is it?
- Future versions of TypeScript may introduce additional stricter checking under this flag, so upgrades of TypeScript might result in new type errors in your program. When appropriate and possible, a corresponding flag will be added to disable that behavior.
03:26 - noImplicitAny
- The any type in TypeScript is exactly that - it can be anything.
- TypeScript will try to infer the type. When it can’t it will be any.
- Sometimes you need any, but if that is the case, you must explicitly type it as any.
- If something is implicitly any - it might be a mistake, or you forgot to type it. Risky!
06:01 - noImplicitThis
- You must type this - it can’t be implicitly inferred.
06:47 - strictFunctionTypes
- If you have a type that is a function and it doesn’t 100%.
07:44 - alwaysStrict
- Always turns on strict mode. You can’t do things like redeclare var variables.
09:25 - strictNullChecks
- Makes you check that the item is actually there before accessing a value or method from it.
- Imagine you filter or find on an array, or query selector a DOM element. There is a possibility that nothing is there. strictNullChecks makes you check that it’s there - like an if statement.
- Optional chaining is super handy here.
11:18 - strictBindCallApply
12:38 - strictPropertyInitialization
13:37 - useUnknownInCatchVariablesLinks Tweet us your tasty treats!