Effective Types
This is a short series of posts about type-checking in JavaScript, mostly with Flow and TypeScript. Its focus is less the basics of their use, and more how to wield them effectively.
The title is (with some measure of hubris) named after Yaron Minsky's 2009 "Effective ML" talk (in turn which is named after an "Effective Java" talk); I recommend you check it out, particularly for its "make illegal states unrepresentable" section on type design.