принимала разное количество аргументов в зависимости от типов агрументов? Пробую так:
const setObj = <T extends ObjectType | null>(
type: T,
id: T extends ObjectType ? ObjectId : void
) => {
if (type === null) {
// ...
return;
}
// Здесь считает, что type может быть null, а id - void
}
setObj('type', 1); // ошибки нет
setObj(null); // Error:(29, 5) TS2554: Expected 2 arguments, but got 1.
тебе нужен overload
Обсуждают сегодня