The static keyword defines a static method or field for a class, or a static initialization block (see the link for more information about this usage). Static properties cannot be directly accessed on instances of the class. Instead, they're accessed on the class itself.| MDN Web Docs
Classes are a template for creating objects. They encapsulate data with code to work on that data. Classes in JS are built on prototypes but also have some syntax and semantics that are unique to classes.| MDN Web Docs
From allowJs to useDefineForClassFields the TSConfig reference includes information about all of the active compiler flags setting up a TypeScript project.| www.typescriptlang.org
The super keyword is used to access properties on an object literal or class's [[Prototype]], or invoke a superclass's constructor.| MDN Web Docs
How TypeScript describes the shapes of JavaScript objects.| www.typescriptlang.org
Types which are globally included in TypeScript| www.typescriptlang.org