с типом type IBadgeColors = 'green' | 'blue' | 'gray';
На клиентской стороне надо написать что-то типа
let color = 'gray';
switch (status) {
case 2:
color = 'blue'
case 3:
color = 'green'
case 4:
color = 'gray' }
<Badge color={ color } />
TS ругается на color.
Как правильно писать такие вещи.
Не экспортировать же наружу тип IBadgeColors?
const Badge = ({ color }: { color: 'gray' | 'foo' | 'bar' }) => { return <div>{color}</div>; }; const X = ({ status }: { status: 1 | 2 | 3 }) => { const getColor = () => { switch (status) { case 1: return 'gray'; case 2: return 'foo'; case 3: default: return 'bar'; } }; const color = getColor(); return <Badge color={color} />; }; если я правильно понял, этот код ошибку не выдаст.
функции, которые не зависят от переменных компонента лучше выносить за пределы компонента или мемоизировать, иначе на каждый ререндер будет создаваться новая функция
Обсуждают сегодня