# **🦕 Booth: TypeScript (2012)**

* **Creator:** Anders Hejlsberg (Microsoft)  
* **Design Philosophy:** Static types that scale. TypeScript is a strict syntactical superset of JavaScript, meaning any valid JavaScript is valid TypeScript. It builds powerful static compilation analysis over JavaScript runtimes without any runtime performance penalty.  
* **Key Innovations:** Structural static type checking, generic constraints, mapped and template literal types, and type inference.

## **📐 Structural Subtyping Algebra**

Unlike languages with nominal type systems (like Java or C++), TypeScript compares object compatibility strictly structurally.

We define structural subtyping for two types ![][image1] and ![][image2]:

![][image3]An instance of type ![][image1] can be assigned to a variable of type ![][image2] if it has at least all the properties of ![][image2], regardless of whether ![][image1] explicitly implements ![][image2].

## **🚀 Hello, World\!**

const greeting: string \= "Hello, World\!";  
console.log(greeting);

## **🎨 Showpiece: Discriminated Unions & Readonly Interfaces**

This showcase models strict algebraic type-safety using discriminated union structures and mapped keys evaluated entirely at compile-time.

// Define structured interfaces  
interface SuccessPayload {  
    type: "success"; // Discriminant field  
    data: string;  
}

interface ErrorPayload {  
    type: "error"; // Discriminant field  
    errorCode: number;  
}

// Combine models into an Algebraic Type  
type ApiResponse \= SuccessPayload | ErrorPayload;

// A generic utility that turns all keys of a type into Readonly values at compile-time  
type SafePayload\<T\> \= {  
    readonly \[P in keyof T\]: T\[P\];  
};

function handleResponse(response: SafePayload\<ApiResponse\>): string {  
    // The compiler enforces static verification based on the discriminant string  
    switch (response.type) {  
        case "success":  
            return \`Success\! Data received: "${response.data.toUpperCase()}"\`;  
        case "error":  
            return \`System Error. Code reference: \[${response.errorCode}\]\`;  
        default:  
            const exhaustiveCheck: never \= response; // Enforces completeness  
            return exhaustiveCheck;  
    }  
}

// Client testing  
const okResponse: ApiResponse \= { type: "success", data: "Data loaded from API server" };  
const errResponse: ApiResponse \= { type: "error", errorCode: 503 };

console.log(handleResponse(okResponse));  
console.log(handleResponse(errResponse));  


[image1]: <data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAbCAYAAACjkdXHAAABi0lEQVR4XpVRu0rFQBDdIHpLsdBCkn3cRJSIIKSxsrMSBCsLsbYSaz/AwsbO3xCsbylY2fuorSzsbBSJM5vZZLOPRA93mc2cc2Z25rKEufAzf4AxUYzWiBKIJE479UeQ6J8Q4poLUUslt026Fz0QkabpFphrPFzwvZ6ju4ZuuutMCF5jZ7gfW1S4s10GDA9wHtHMOT83o4y+vaqqeSnlDpw76nypiYheA7lirVgG8Rt+S6mu9Nxc3HrCEEB8Ax0vUICROt9HHGYWxmC2Uir5WhTFpDGrU9r4s5FGkDDoMsvS7IA+sfMRdf5wxAZNORAcUpfe0WYu6rLcXOh3ptXDkiYgfFFSbti0UmrdFIG7sEwG+j99z/N8xc5RTID7wc4Q9zseMM2nizAXLuWpNbc+NqeU3AXuE82wzLPWmGXZavMkrmeC+zcIlgwP31/myeYAf+I920fXPohIul1iG6NwXtDph0w9dEL/9o8ivtTJ+AIWTlIuRAWe6MBOj+9hgHQpv5irsDBADc9ngwS/IXBT8f0OYA8AAAAASUVORK5CYII=>

[image2]: <data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAZCAYAAADXPsWXAAABqUlEQVR4XpVSMU4DMRDMKUhQUBIJ5e5snxQqQKKggIpQIXgDvIECKHgGEj18gFSRQIpEyQfgAekooEpBQxFm7fXZPjsXMdLGtzuz6911Olnnf0jqk0ENZlKCZsz6+mzJs3A6T+UnSCFPpRQTKeWETkGnoG+pv4UQD5VSJ3VacBs7SqlN2BB2iyIzJJ8Zv6LYEEVeEJvD3hBb80tEwK3PQshLP2avBjdFd1ToPhrLwwqEs6Iodh2daSk62eZO5vg+dyk+Mj3SAYlSW0Z8LEyR98Fga9UxhFB4ZYqEXN7vb2BPVOAVXeaOi1+pC+E3FaFFVmbJ2kxx8YHvvTo5KMJnWZb7PPOn3YMvYG7a6/XWo2QLbP2ahaOQMWCOuqT/CsN2xIBgzMKbdCd6J2THXtiNVSl1ZATiC26X6Rr0pOB/YYfRJHx2IXrkW0YmZn7LotxB+3f0tPT89tJghjzPC06ujf8LxoT8QXdPuOTCZTGaHS1x0voAWdxh7cSEQzLckpCMNoO+3+R8xM3aMZJYzERITdCWHneywGkrorFU4CG1Jxdr7qKhSHGpmMUfaBBfXOm7P5kAAAAASUVORK5CYII=>

[image3]: <data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAmwAAABGCAYAAABxPchcAAATpklEQVR4Xu2dDdBtVVnH3ytW9KlYhMC9e+333lvotcy8ZcJUfKSNgpZZRilMZhYEBipQpGKKaQlCaTqZQ5aSMGZKKFaCCpqCGoYMKJMkMPgJNPI1eGcuw9D/f9azzrvO8669zz4f73nf95z/b2bN2ftZa6+91tprPevZ62OfpSUh5pUtXiCEEEIIIYQQQgghhBBiDDTaKoQQoo86BSGEEEKsKTI21hk9ACGEEKOyIH3HgmRzYlROQgghxPRR/yqEEEKI+UBWjRBCCLG5UV8uhBBCiHVAJogQoh1pCSGEEEIIIeYOmflCCCGEmCoyLoTYkKhpCiGEEGOiTlQIIUpIO4oFQtVdCCGEEH1kGCwgeuhCCCHaWId+Yra3nO3dhBBitkjHCTED1NCEmCZqUUIIMe/MWtPP+n6LxFyV7VxlRgghhBBC5o0Qc4MasxBCrBMLo4AXJqNiaXGf9qLmW4jNhVrq5kXPToyL6o4QQojOLFinEUI4cOvWrd/r5aNQVdV+Bx100I94+TxR1/W+KKvzkNddUTKLihLvgXueins/33mKEUAZ/gGe4W97+azA/f8Wz/CnvXyzM4tWIKbCfD8qNK4r4B728vUECuevmaYGdxP8X4PfA/118wLy9inksfbyBIyG70OYL/GYRkRWNp/2YWeBez7JndTgf15+7QzYgqK8FPc9x3vs2LHjRyF/yKUvuT1w70f5Pju/BuefhfwDOHxELh9GIf5G56+dJbj/p/DzSC8vEUx3wB3l/Txd6yme1XPg/4CXj8Z0dTbSc2iW9mHuSH/9rFheXn4KXkoO9nJSSGfubgod9CnCnJddc7T3TzDcvL/YCDFz+CaWGqD3W2+Qttda2j6Ty+0NjvI7cvk8wbdk5O91Xp6wt+g35jIrk7Nz2SzBvf+caUC6HrfkjJkQjaLbwjqMnqCsnof7fmvnzp3f4/0Slr6BNrBt27afYR0ryH/W8vk7ubwRsx3s+bwV7ujdu3d/F9L1dsrQyT4R3vvg/Fk4v8bfb5YgbwchX0/y8iYsTyyLY71fEzaK1lpPEeZflzoajbOARjvSfBl+j4NB9GM4flHKO7y34PdAuAt5zvrmr58RTMcNXpiTdOpSVraQ7Ws69Q4cPzYL3gjC7uVLo5cnOJKNMBd4uRBiAtBQb0fD+o414g0FlbYpwD/L5VQwkD+4EdM8LZDHRyN//+vlCfhdgXJ5gpOx8//lXDZLkJ4/bnomlt79vHwW4N6fh3u9l+cw3WwHXp51cN4AvQJ+X85lw2Cn6M5TefWHg7Zv315BticLNlNCYRSyCeuUe7oD7mTv3wTy/Y/D6inK9oi6q0E8A5C/36ORnc6RtqdavvP6/gicX4/8nZLJZkYVDf7WkcmkU73cdCrzc7r38+C570Q8n/ByD+J6kMatlwshxgCNbjuHrdGwPlRqxKPCEQxTCB/yfuNgCmQPlYmT96cncvm4IJ7rvWxckNY35+fNEzPNPolt27b9ipcRlPFf4D4vzWVUosjHf+WyrtiIwWfgLrGOsu/wTPf34ZsoGWw4fxPce3LZrAlxiq8Vphvpf3VBfpnPk8HO+V4vbMNG0vpYeT2YywjK/V1eNgssPQ95eQnqDoT9WjDdAfc2H6aE1dNSea7CnsnPe3lXTB8dbzrpmd5/FHD9+fl5XTbYeoZd17KYJll6GvPJ+hfDVKteCILpVLZ57+ehwY1wz/FyD8J8MMSXj5GWDogNzvCuS6wFaFCX85cN0CueUbDpHU7h3Yrf3d4f7APj4xeWRpziMAV0RUF+pfm9w/uNQ5jimhPEdSPcc718HFiuzH/B3eUNqRCnaPqdCo4Po2z//ff/gTxcCYS7ediIRxdKBltdL//d0pAmjrz8EK77dbjnIx2BsoMPPviH2cFwFIfGAY6fQjk7cHYq5h5NGa47FMcvhTsT4X8yL3+rmwMjWwVofD0cXD1gp2Tyu3N5AvKPe1kbzGd+jutPC2WD7YQs/49pyz/ckxDHMZCfav7HsSy2b9/+44OxRljO8P9TlrX3g/xyyL/o5SUYlulMugPun32YEsGmEr2sVE8ZDvd4mZd3wdrOrXAfHqKTOsEyy8/TtHghL4fifq82/wOZDk6tp/zZc0uO8PcEjqxaO3g5n/FSoc1Yno6yMnxy7ofzVzEtTevXCOI9xdI8oFNtpPTK0FGfItytrJ/Z+YuZ3zwMqW10uqH854ZVD0qIaVPFdT29hb/4PZ8Ny4fpCNdNcMHq1aHB8IH8IlMUXKjdGbvmrHTONRNQAr8F2R4aB0tTaCuI651eNgk2gnAzNbH3GwfEdUGm4HsOskt8OHacaUQuxPU0H4a7KpRGO7NSY9hpTVvwmfCZ2ekWGkrsjAYCORD+SLhvW9hP4vgeHP8mfo9hXJm7y8LflWQsC5N9Ccdnwv0qju+HuzjFb+vQ+psfStTR6BkYyUUanmD3+TSMpUPy8An4nV/1d1KODq4/nffwchI65t/KjOdcInA66wHcP9j5wCJynB/Jcsbvc3kdy9n53xeysmsi0x1s+z3dEToar0wfw/OY6avi6Fexnlq8I4/O1nFdLnVSUR+RYDrJy7tCA9rSV4wj+SXHOlaQvz47Phthvhziov7/g7s1j2/Hjh3bIPtCiC9sF9g15yZ/HF8Cd2d+jQf+77Pr+jq1jvr0f0IcCRuqT/0IKa5/Ic7fwetx/NQ8bG0vPPg9MZeLURj6SMS8g0b0Ori3pHM0qBPyRjgMvA0+CuG/GqJR0LhTKEHlRkXtG3Qb1tHeg8N9cjnieVqIa5Ien8tHBdd/DO602hlD03I0nhD/B/AmutXfexQQx7Usi3TON2i/eJ6jKXx+KOcD6rgbcjlEJfow3JvysDm2XuqbXj4uyWCDez/c31snw/N/8WET9M9HOmpXF4OtkWJcPOeIE86/kvmfHLI6iOPDqmxqE+cnhSE7GEPs7AbW7lRxR+NeuFfl8pw6dlYv8PKu4NqX53ktccghh/xgW/4Jzu9hGD9KRRnS+Fo7/ri/F8+Dre3DM/gJnlduvWiJUNAdcN/Ow5RI9RT3+Gyqp5Tb9avqKWQ3B9sJPYw6jhr2dJL3K5F0kpd3xfQT0936/EJcu3lcdn5N5Yx8i+cYJzsL7koX5hXZ+ePze+P4m3AfTeclLI4BnWr6lIb657OgjSDcuy2ek7O6xfP7qX9cWOohPu+353IhNhXrbTOz0aKxHW7r15ZN2VG5D6wV8xxwwAHfjzBvRNgv8jrvP01C7MxWvXUTUxA3ecOlRF7W7PygPE5FHi6f1JDqAu71J0jnV2u3rm0ULL396xln7k/gf6KVydXoSHZQxukVyI/YtWvXd/vwCfj/HK65iuGaXD71MYzMYOvvALTzYqdmBmNvo0S6X3BTZsEMT/i9xs5fguO/TP6ZUUiDhMbVgIEP2VnsnHOZYx+EubsuvEwE2yEKv9/1fiTEkao/9PKuhA4GG2nLv8nuZpiSwQZ3U3acRuVSWVPWm8rMzlsXneMZb69Nd7Bu1aY76HxYT71ST29I9dTkxXoa4ovZN7w8J9NJ3KG8pjopp9Vgy5QOyut4hPlYOsfx1Su+fRnjGTDYknGbDHULc4Z7fv01lDh+CLJLV2JYjcWxSqfiujPp10WfItw3GDZ/KUL7emJpFJq6w+55kfcTQnQAjecorxxt0TlHOlatQyhBZVXH4fuTuzTyMXhkiJ3o4d6DmBJg58PPR4yMjVr895COfCJsFPI97OC836ggnosRz/M4EhXcJ06W4rRUb5oM+cFPb9qk08JxjtaFjmuWupAMtlxmLwX8XMC7cjkJcT0Ow7eubeSzYjjWz6qwOw2y/RD/sWFlqug/k18djYSBzjAHfmf4NCequIOa8V3o/Ug9gxE2kvKP9Dy7lP9gz7/BYOvJ03Hun4N4d9G/dp+KyQnxed2Yy5LuaIs7kdJpdaJXT9M0fokwwggbwl2YdJL3Wwu8wdb2Em7hzkX69q1t3WXB34+wcVkD5UdTX/MYz+iX8jA58P96KBiDGdSpfL6rdGqIGyU66VNLx18Fm85vu2fQCJsQ4xDViS1aHVC4hErEGl/jDqMtTiNxhKoK1RtwzReoiAZ9JyPYjiUuhvV+S9FAYVp7IwfjgjQ/I8QpFMblF/VP5KzjKC5UHwfE9UzEeSkVX3DrsdJUFty1PK/tu3o85ghWlU3HlED4T3rZuJQMNgLZCyiH/7Nyeap3+K1zuQdhXmJ5pEH2otyPhmx+HuI0fT8N9Of98zA5oXkXaOpIme7jvR9Bsl8WWozBYYTuBlvKP6eaB/Jv/m0GW2+qK8SPADfeyz4g3Nq5wv9G/1KXnmFb3AkLN1BP4d7aVE9DHDlsNAg8PZ1UVW+AO6Wesk7yeIOtDQvHZ7Tq2RHz9wZb72UmjXDzuG75zEmIBnCjcRuiTt1b0KnUp1x/PDQfxNL6a3bMDVa969hG0mhgArLdlu7Gl4Cp0GYtC7FZQeN5RSgPT7PR7q0bpn7asI0An8P1ZxSUQQ803KfD/UfosN6NhLh+o6hALA/fqUf4uGcTnJYJtph7Wlict9SFKbYJ4C7Gr8DdyZG73KNemWbq7RCt4m7dXtnVcbqqv8B4hRUNhzDHclop8xybJoONWBq/TsPAy2tbC5PA+TPcOY0CrmW7w6eV98zP68xgJZyuwfkr8zAJ+7eIB0ppttFHprlx0Tvu9eZ8NyZ37iL8O5vagSd0NNiy/O/1+SfBDLZ8+rp239Wq4qjIwL1YziH7uGmImz8+kofJCS26w8ddavOWnoF6WsfNIsV6auHf7eXDCHHa+HNtzyGlz8sTw2yAUQw23OcTFvY+70fMb2BneRXX/PanOC0M16j1p/ztefc+mYGw74X/nvxbcTkh6tRVG0NC1KeMe9U3CEPcscoPGOcyvkg/xo75wns/6xrC3c6ZizwsZL9hcb84lwshWkCDeYs1nJ5zfn155sb66yBOj+La66iAc3mIQ+40Ylp3DFZxd6BPS3L3wl3EMP66SQnZFNqkhI6LnkeFoxCcEvXyEL+f9q3UWbNDD3EkhiN9Q7+VROpo9N0Gd97W+FkM7i5snab0ZM8pd73RwMq+6J+5W7LrOPVzMeVV/MunG6rC1A/kh3E00curaCReF+IOuHNDzMfA/xji/Gv5ucmut7SU3LXVkMX3Nlp9fy5jR0YjgJ1nLvfUcQTW35P5b/zgaoifaSkaB2Fl5+hJdfxLt4/C3Ve76bewMs32AMval3OInxnx+mFAd9AQSn7Z+sHc9XRHKLT5UKinTEdTPWV8nHL18q6YPuLo5HXemEjpy2VdCCvT7qucD5ug4RjiaGFxt7Jdf3aIu2X5bwk0gAf0iE2Lcp3e/dZO+Aml3qdcCEc+GQ9kv59fl9LW4O41fVq0T+H/tpDNZFTx3x76m3Cq+KHeO/H8PlgyjqsQ/j3E3a7F+IVYULq1h26hJsMWIr+w7W9LNhpUfP4bWeNCw8rL1hJ2mn4qgoyanxDXm3DXLEdLbwkrX7AvTuNMG+aBo5NenqgaPqDK8rY6dwSd75gJ8+E3mUzaFhDnkxmvl5NQHolqZ0iCmP+QLV7PCdmUKMrgcXCH++nRBMuZ5VQq62BLEbx8WpTqKTr6nV6WQFou87JxYP2gIb1eOon3xf1vb2qT1s56U6LLy8u/yNFdHybB+o0wP7W0+oWKo/A05hqntKfAqlpaMtQSSM99VWGTlBBCiDkjHwGC8v+n3G8UQhydPc3LJwHxncORDi8nkP+Rl40D858MK+bfRkNWERp2iY4Bpzf9ppbpsKqrb8c2JjSuqd3o8Lml+stRRuTlb3yYRG6wTUKI38Rr3VU7S5CWB9L0qRBCiDnF1pDxA8kcWeJmjsN8mK7Y9OVV7NC83zigA35vFdf2rPrLnWr4vyp0Isv/R9ryH+JnUB5kp19P8PmYHDNE/QjOzKjiR4t7m3ZGtPOmyiT3DnETAP+6i//CUfy3Bhp0wdbrsj7x2IcZFcTzND+a3M4kuWwGeT6RRreXj83aJFMIIcQ04IgSOrH3cYrP+41KFT+Eu2qH9DggnmuapoJoQHnZuFj+uRaxMf9msLHT7znvPw4hrik8x8tngW0EuaFuWNe2WeC0ZYg7lv/N+yUyg23az49rctfb4L7Ny8U4yFIVQkyLTaRP0ImGesLPPXANEeJ4rJfPE7ZI/pLlNfxOYRO47ytHMVw2UfWbGXXcdTvVJQCjUMXdwa3/LrKWqE4IIYQQYgPRYJo0iIUQQgghhBBCCCGEEN1ZGWbTgJsQQozIuIpz3OuEEEJsLKTPhRBCCDFz5skAmae8CCGEEGuMuk0hxFSQMpk/9EwXAT1l0YgqxyZED21Ts9kf36ZJ/6ZJqBBCdER6TUUghBCbFmlwMRKqMEIIIdYddUYbHT0hMQ+oHq8BKlQhctQihBBCCCGEEEKIhUHDAEIIIcS0UK8qFoAFqeYLkk0hxkLtQywyqv9CCCHEYiIbQAixLkj5CCE2G9Jbi4WetxBiPZEOEkIIIcS0kF0hhBBCCCGEmHf03iPWnnmrZfOWH7GIqBYLsSFR0xRCCCGEEEIIIVrQi7MQQgghxNwhE08sCotc1xc576I781hP5jFPQgghhNigyPAQQgghhBBifpG9L6aDatKMmH1Bz/6OQgghhJg3ZE/MI3qqwlBVEEKIWSPNK8RUUZMSQgghhBBiJsj03pxM8NwmuFQIMVdIGwixeVH7FUIIIYQQQgghhBBCCCHEWvP/W5oNXv48eMYAAAAASUVORK5CYII=>