Звуження типів: formatValue
Функція formatValue отримує значення типу string | number | Date | null | undefined і повертає рядок для показу в таблиці.
Рядок повертається без пробілів на краях, число - з двома знаками після коми (3.14), дата - як YYYY-MM-DD у UTC, а null і undefined - як -. Сигнатуру не змінюйте: усередині функції TypeScript має сам розуміти, з яким типом ви працюєте в кожній гілці.
Ctrl+Enter - запустити тести. Tab - відступ; щоб вийти з редактора клавіатурою, натисніть Esc, а потім Tab. Код зберігається в цьому браузері.
Тести (6)
Тести типів перевіряє компілятор TypeScript у режимі strict. Expect<Equal<A, B>> проходить, коли типи збігаються точно, а // @ts-expect-error - коли наступний рядок не компілюється. Перший запуск завантажує компілятор, тож триває кілька секунд.
- типи
// @ts-expect-error - boolean is not allowed formatValue(true);
- типи
type _ = Expect<Equal<ReturnType<typeof formatValue>, string>>;
expect(formatValue(' hello ')).toBe('hello');
expect(formatValue(3.14159)).toBe('3.14'); expect(formatValue(2)).toBe('2.00');
expect(formatValue(new Date('2024-03-05T10:00:00Z'))).toBe('2024-03-05');
expect(formatValue(null)).toBe('-'); expect(formatValue(undefined)).toBe('-');