Typescript&#x27;s following the usual JS scope closure rules: the namespace syntax is sugar for the usual sort of JS &quot;IIFE&quot; object pattern, which you should be able to plainly see in the transpiled output.<p>Because Date is a data type, not every browser may attach `Date` to the global `window` object. I can&#x27;t think of one that does not, but it&#x27;s one of those cases where JS has always been ambiguous.<p>That said, Typescript is more than happy to let you `(&lt;any&gt;window).Date` assert your way to that global. Or if you feel particularly strongly about this, you could in increasing order of strength of opinion: 1) add .d.ts file somewhere augment window yourself with Date, 2) fork the lib.d.ts and use your own instead of the default, 3) send a PR to Typescript adding it to the default lib.d.ts and see if they have a stronger reason for it not being there beyond it just being ambiguous in the JS language&#x2F;spec&#x2F;library.