Understanding TypeScript’s type notation