After spending a few years with TypeScript, I remain impressed with all it accomplishes, especially with structural typing. But its central goal is still to add safety around JavaScript, and it can’t escape certain design limitations that imposes. For instance, it can’t avoid having both undefined and null. Working in TypeScript, I feel somewhat held back by JavaScript. It’s much better, but not like I think a language created two decades later ought to be.