Проверьте, имеет ли переменная тип во время компиляции?

#typescript

Вопрос:

В целях модульного тестирования новой библиотеки со сложными типами я хочу иметь возможность проверить, имеет ли предоставленная переменная заданный тип. Это должно произойти во время компиляции, так как типы удаляются.

Вот что у меня есть до сих пор:

 function hasType<T>(v: T): void{}
 

Это только половина решения: он будет компилироваться , если v его можно назначить T , но это ничего не доказывает о T том, что он может быть назначен фактическому типу v . (например hasType<string|bool>('somestring') , пройдет.)

Комментарии:

1. Подожди, почему ты не хочешь hasType<string|boolean>('somestring') пройти? Каков здесь пример использования? Это не похоже на то, что вы можете присвоить значение "somestring" .

2. TS не позволяет легко это сделать (и я все еще не понимаю варианта использования)… но работает ли это для вас?