https://academy.dream-coding.com/courses/typescript
arg == null
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] { return obj[key] }
$ tsc --init