Implementing an Opaque Type in TypeScript
evertpot.com