I have read this, but it is unclear what would be the difference between \'never\' and \'void\' type?
Also, for more a theorical reason, with --strictNullChecks new flag, TypeScript needed a new bottom type (since null and undefined are no more). The type never is such a bottom type and make TypeScript's type system more consistent.
--strictNullChecks
null
undefined
never