https://www.sudoversity.fyi/posts/typescript-basics/