You can encode that "correctly" in pure JS
class LoadingState extends State {} class ResultState extends State {} class ErrorState extends State {} const state: State = new LoadingState