Practical adoption.
WHAT TO CONFIGURE
Strict checking, which catches considerably more.
WHY
Without it, many of the benefits are absent.
WHAT STRICT MODE ENFORCES
That values which may be absent are checked That function types match precisely That variables are assigned before use
WHAT TO DO WHEN ADDING IT TO AN EXISTING PROJECT
Adopt it gradually, file by file.
WHY
Converting everything at once produces thousands of errors and gets abandoned.
WHAT TO DO ABOUT LIBRARIES
Use their type definitions, where provided Install community definitions, where they exist
WHAT TO AVOID
Disabling checks to make errors disappear Casting values to silence the compiler The type meaning anything
WHY
Each of those discards the guarantee you adopted it for.
WHAT TO DO WHEN THE COMPILER OBJECTS
Establish why. It is usually correct.
WHAT TO TREAT AS A SIGNAL
Types that are difficult to express, which frequently indicate a design problem.
WHAT TO RUN IN A PIPELINE
Type checking, on every change.