実用的な静的型付き言語には、たいていの場合危険なことをするバックドアが存在するものですが、TypeScriptには一見してわからない場所にバックドアが存在するという特徴があります。
というわけで、様々な方法でunsafe_cast<T, U>(x: T): U
を書いてみました。便利。
https://github.com/todesking/unsafety-zoo.ts/tree/master/src
謝辞: テクニックの多くはtkr氏の記事に依っています。
https://kgtkr.net/blog/2018/06/23/typescript-unsafe