Я новичок в Typescript, я не могу понять это: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/styled-components/index.d.ts
Я пытаюсь выяснить, существует ли уже определенный тип для функций внутри литерала шаблона в стиле-компоненты.Например:
export const getColor = props => props.color;
const ColorButton = styled.button`
border: 0;
color: ${getColor};
`;
export default ColorButton;
Я хотел бы написать файл d.ts для этих двух экспортов.В настоящее время я придерживаюсь этого шаблона:
type PropFunction<T> = (props: T) => string;
type Prop<T> = string | PropFunction<T>;
interface ColorButtonProps extends React.ButtonHTMLAttributes<HTMLButtonComponent> {
color?: string;
css?: Prop<ColorButtonProps>;
}
declare const getColor: Prop<ColorButtonProps>;
declare const ColorButton: React.ComponentType<ColorButtonProps>;
export default ColorButton;
Причина этого заключается в том, что я могу писать функции styled-component как реквизиты:
<ColorButton color="purple" css={getColor} />
Поскольку getColor является типомФункция, которую ожидают styled-components в шаблонном литерале, я бы предположил, что для нее уже определен тип, и мне не нужно создавать свой собственный (PropFunction и Prop).Есть ли лучший способ определить эти типы?