Код: Выделить всё
{/** valid, because `a` (HTMLAnchorElement) accepts a className prop */}
Link
{/** Valid, because it doesn't necessarily _require_ a `className` prop */}
Link
{/** Valid, because no `className` prop was specified and the inline element does not accept a className */}
(
{children}
)}
>
The blink tag is deprecated
{/** Invalid. The inline element does not accept a className */}
(
{children}
)}
>
The blink tag is deprecated
Код: Выделить всё
function Button(props: ButtonProps) {
const className = extractClassName(props);
return ;
}
< /code>
Я хочу создать функцию, которая попытается извлечь имя класса в объект и распространить ее в коробку, поэтому я сделал что-то вроде этого: < /p>
type HasClassName =
T extends Partial
? Expand
: never;
type ExtractClassName =
T extends Partial
? Expand
: Record;
function hasClassName(props: object): props is HasClassName {
return "className" in props;
}
export function extractClassName(
props: T,
additionalClassNames: U,
): ExtractClassName {
return (
hasClassName(props)
? { className: cx(props.className, additionalClassNames) }
: {}
) as ExtractClassName;
}
< /code>
Проблема, с которой я сталкиваюсь здесь, заключается в этом случае: < /p>
Link
Подробнее здесь: https://stackoverflow.com/questions/796 ... data-not-a
Мобильная версия