TIL: Constraining TypeScript function parameters