マクロでコンパイル時型エラーにできる?
実行時ならアサーション入れたりでマクロで何とかなりそうだけどコンパイル時に検出は無理くない?

個人的にはTypeScriptみたいな複雑さって本来過剰で、ブラウザ上のJSという特別な実行環境がゆえに必要になったもので、本来はenumとかで済までいいと思う。