TypeScriptはなぜランタイム構文を作り、なぜ今それを取り除きつつあるのか