Ryan Cavanaugh at Frontend Engineering Sydney, May 31
Ryan opened the talks with some discussion about the goals and non-goals of TypeScript. Statically identifying constructs that are likely to be errors, like those above, was high on the list.
Ryan continued with a detailed discussion of the tradeoffs TypeScript makes between soundness and working code. “Soundness and correctness are highly correlated” says Cavanaugh, but “we want to strike a balance between soundness and actual correctness and productivity.” Another of TypeScript’s goals is not to cause substantial breaking changes from TypeScript 1.0, and Ryan describes how new TypeScript versions balance the value of finding new bugs in users’ code against the horrors of “opening up your program and seeing like 300 warnings that weren’t there before”. Ryan describes examples of generic type inference as a simple breaking change that had to be made.
We look forward to seeing you at the next Frontend Engineering Sydney event!
Canva’s Marc Fallows at Frontend Engineering Sydney, May 31