TypeScript
Formally, the type system in TypeScript is unsound:
function add(x: number, y: number) { return x + y; }
let arr = [1, 2, 3];
add(arr[3], arr[4]);
// typechecks, but fails at a runtime
// can be improved with `noUncheckedIndexedAccess` option
Learning
Tools
- Knip | knip.dev – find unused files, dependencies and exports in JavaScript and TypeScript projects
- TypeScript Explorer - Visual Studio Marketplace
Compiler
- TypeScript AST Viewer
- GitHub - microsoft/TypeScript-Compiler-Notes: A repo containing notes about the TypeScript Compiler codebase
- How the TypeScript Compiler Compiles - understanding the compiler internal - YouTube
- Let's Make a Generic Inference Algorithm - Ryan Cavanaugh, TypeScript Congress 2023 - YouTube ⭐️