🔥

Тред (Назим Гафаров)


Следующий пример чуть сложнее: const robots = ["R2-D2", "BB-8"] const isRobot = robots.includes(790) TS запрещает такое писать, т.к. тип выводится из массива Array<T>.includes. Поэтому я могу передать в includes только строку. ⬇️

Моя логика такая: у меня в справочнике есть список фруктов и я хочу узнать, является ли арбуз фруктом или нет. Я ожиданию простой ответ - да или нет? includes(val: any): boolean Но TS говорит мне, что я не могу задавать такой вопрос. Где массив создавали туда и обращайтесь.

А как там у нормальных пацанов? В C# нет includes, но есть indexOf: string[] robots = { "R2-D2", "BB-8" }; int lexx = 790; int pos = Array.IndexOf(robots, lexx); C# не ругается, спокойно возвращает -1. docs.microsoft.com/ru-ru/dotnet/a…

Если же вы посмотрите на includes как на Boolean(Array.find()), то все встанет на свои места. Но я все равно не согласен с таким поведением. Рано или поздно TS это исправит, как исправили isFinite. Запомните этот твит.
notion image