TypeScript · Middle · Запитання 26 з 75
Як TypeScript обробляє оператор in під час звуження?
type Fish = { swim(): void };
type Bird = { fly(): void };
function move(a: Fish | Bird) {
if ('swim' in a) a.swim(); else a.fly();
}- ✓Правильна відповідь: Звужує union до варіантів, що мають властивість
swim - 2Оператор
inне впливає на типи - 3Перевіряє, що
a- масив, який містить рядок'swim'
Пояснення
TS підтримує звуження через typeof, instanceof, in, перевірки на рівність, істинність і дискримінанти. В else лишиться Bird. Для даних із мережі такі перевірки - частина рантайм-валідації.