слов.арь · bisovka

объясни type-type-error --простыми-словами

Иллюстрация к термину «Тип / Type Error»

Тип / Type Error

КороткоВ половине случаев, когда твой build умирает, это не какая-то глубокая ошибка.

В половине случаев, когда твой build умирает, это не какая-то глубокая ошибка. Это кодовый эквивалент того, как насыпать соль в стакан с подписью "мука".

У каждого кусочка данных в коде есть тип — ярлык, который говорит, что это за вид штуки. Текст — один тип (разработчики называют его "строкой"). Целое число — другой. Список — третий. Правда-или-ложь — еще один. Этот ярлык не для красоты. Он решает, что тебе вообще разрешено делать с этой штукой.

Подписанные мерные стаканы. Представь стол, заставленный стаканами с подписями мука, соль, яйца. Подписи нужны, чтобы ты не высыпал соль туда, где должна быть мука, и не испортил замес. Типы — такие же подписи, только для данных. Слот "количество товаров" ждет настоящее число. Попробуй влить туда слово "двенадцать" (текст) вместо 12 (число), и кухня тебя сразу остановит. Не тот ингредиент для этого стакана.

Type error — это когда компьютер ловит ровно такое несовпадение и отказывается идти дальше: "ты дал мне текст там, где мне нужно число." Классика:

Это стена, в которую vibe-coders врезаются чаще всего. Твой AI пишет кучу кода, ты запускаешь его с надеждой, а вместо работы он выплевывает что-то вроде TypeError: expected string, got undefined. Это ощущается как краш и личный провал. Все наоборот. Это страховочная сетка делает свою задачу: ловит неподходящий ингредиент до того, как он запечется в готовое блюдо и попадет к клиенту.

И вот хорошая новость, которая напрямую ведет к следующей идее. Многие такие ошибки ловятся еще до запуска, в момент сборки. Некоторые языки проверяют все ярлыки заранее. Именно это люди имеют в виду, когда говорят про "типизированный" язык вроде TypeScript, где само имя буквально про типы. Поймать несовпадение во время build — значит поймать его у себя на машине, приватно, а не вживую перед кем-то.

Когда упираешься в такое, не щурься на код, гадая. Вставь всю ошибку в AI. Эта стена текста — stack trace, и она называет точное место, где неправильный ингредиент попал в неправильный стакан. В девяти случаях из десяти фикс — одна строка: превратить текст в число, сначала проверить, что штука вообще существует, или передать значение правильного вида.

Type error — это не твой проект ломается. Это ярлыки работают: ловят соль в стакане для муки до того, как она попадет в духовку.

← все термины