(transformed) to JavaScript • Superset of JavaScript and interchangeable with it (adoption is gradual) • All valid JavaScript code is TS • Adds static type definition to JS • Provides annotations and better documentation of JS code • Validates JS code automatically • Generates output that runs anywhere (because it's vanilla JS)
(NaN === NaN being equal to false) • Meant to replace Javascript • Meant to be used directly (without being transpiled) • Fully independent (controlled by Microsoft) • Babel (something that adds new features and compiles to old JS) • A definitive solution (JS is evolving quickly and that might kill TS in the future)
everything + assign value let name:string; // Declare everything let name; // Declare JS way let name = "Joe" // Declare JS way + assign (type is inferred)