Как правильно получить доступ к реквизитам внутри createStyles? - PullRequest
1 голос
/ 04 июня 2019

Я пытаюсь выяснить, как получить доступ к props в рамках createStyles в моем проекте TypeScript. Я не могу найти хороших примеров.

Вот упрощенный пример того, что я пытаюсь сделать:

type Props = {
  isActive: boolean;
}

const useStyles = makeStyles<Theme, Props>((theme: Theme) =>
  createStyles({
    root: props => ({
      border: `1px ${props.isActive ? `dashed` : `solid`} ${theme.palette.grey[500]}`,
  }),
);

Я получаю эту ошибку, когда пытаюсь использовать ее таким образом:

Type '(props: Props) => { border: string; }' is not assignable to type 'CSSProperties'.
  Index signature is missing in type '(props: Props) => { border: string; }'.

Реквизит действительно работает, если я удаляю createStyles, но в моем реальном коде мне нужно создать там createStyles, чтобы типизации работали правильно.

У кого-нибудь есть идеи или примеры того, как заставить props работать должным образом?

1 Ответ

0 голосов
/ 14 июня 2019

Оказывается, это не относится к TypeScript 3.5. Расширение типа работает правильно, и createStyles больше не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...