title: string; }
в коде пишу
if (typeof item === 'string') {} else { console.log(item.title); }
и получаю ошибку Property 'title' does not exist on type 'string'
как правильно сделать type guard ?
https://www.typescriptlang.org/play/index.html#src=type%20X%20%3D%20string%20%7C%20%7B%20title%3A%20string%20%7D%0A%0Afunction%20test(x%3A%20X)%20%7B%0A%20%20%20%20if%20(typeof%20x%20%3D%3D%3D%20%22string%22)%20%7B%0A%20%20%20%20%20%20%20%20console.log(x)%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20console.log(x.title)%0A%20%20%20%20%7D%0A%7D все ок должно быть
В таких типах "или то или это" тайпскрипт фактически пропускает только нечто общее между типами. Надо делать проверки и далее кастовать тип до необходимого при обращении к переменной
Обсуждают сегодня