Я хочу создать функцию с параметром rest, которая будет возвращать условные типы , например:
- null при наличии неопределенное значение
- строка при наличии одно число
- массив строк при наличии несколько чисел
Я пытался написать эту функцию в нескольких формах, используя TypeScript , расширяет синтаксис , но, к сожалению, ни один из них не работал.
Я также пытался написать функциюгде первый параметр был числом, а второй - параметром rest, но он также не работал.
Так выглядит рабочий код прямо сейчас , за исключением правильного условного возврата типов:
import { rem } from "polished";
type UnitValue = number | undefined;
const unit = (...values: UnitValue[]): string | string[] | null => {
const result: string[] = [];
values.forEach(value => {
if (value) {
result.push(rem(value));
}
});
if (result.length === 1) {
return result[0];
}
if (result.length > 1) {
return result;
}
return null;
};
воссозданный регистр в codesansbox.io -> ссылка
Мне нужна эта функция, чтобы возвращать точно и только эти типы в этих трех случаях:
unit(undefined) -> null
unit(16) -> string
unit(16, 32) -> string[]