Next.js, type is not assignable и ремонт контракта
Ошибка type is not assignable в Next.js с TypeScript часто выглядит как локальная техническая помеха. Кажется, что нужно просто немного помочь компилятору, сделать приведение через as и идти дальше. Но в рабочем коде эта ошибка нередко указывает не на строку, а на границу, которая пока оформлена неверно.
Обычно проблема возникает там, где сырой внешний ввод слишком рано попадает в доменный слой. Например, значение из params, searchParams или form data уже передают в функцию, которая ждёт не просто string, а уже проверенный Id или другое нормализованное значение. В этот момент TypeScript делает полезную вещь, не даёт смешать два разных уровня данных.
Поэтому хороший ход здесь не маскировать ошибку, а восстановить контракт. Сначала parse или guard на границе, потом уже работа с доменной функцией. После этого код становится не только чище с точки зрения компилятора, но и понятнее по смыслу. Видно, где внешний ввод, где проверка, а где уже нормальная логика приложения.
Статья на Хабр Проект: Workbench Stepik: Next.js II: TypeScript 2026
#nextjs #typescript #approuter #servercomponents #react #typesafety #вебразработка