Дополнение темы в Material-UI требует явного приведения - PullRequest
0 голосов
/ 07 сентября 2018

Следуя указаниям в документации, я пытался настроить мою тему в машинописи. Вот что у меня есть

import { default as createMuiTheme, ThemeOptions, Theme } from '@material-ui/core/styles/createMuiTheme';
import helpers, { Helpers } from './theme.helpers';

declare module '@material-ui/core/styles/createMuiTheme' {
  interface Theme {
    helpers: Helpers;
  }
  // allow configuration using `createMuiTheme`
  interface ThemeOptions {
    helpers?: Helpers;
  }
}

function createTheme(options: ThemeOptions) {
  return (createMuiTheme as (options: ThemeOptions) => Theme) ({
    helpers,
   ...options,
  })
}

const theme = createCustomTheme({
  palette: {
    primary: {
      main: '#2D3E50',
    },
    secondary: {
      main: '#1BBC93',
    },
  }
});

Проблема в два раза:

  1. Мне не нужно явно приводить createMuiTheme, но если я не получаю, я получаю

    [ts] Невозможно вызвать выражение, тип которого не имеет подписи вызова. Тип 'typeof import ("@ material-ui / core / styles / createMuiTheme") "не имеет совместимых подписей вызовов.

  2. Я не могу использовать функцию createTheme, она сообщает об этой ошибке

    [ц] Аргумент типа '{palette: {primary: {main: string; }; вторичная: {главная: строка; }; }; } 'нельзя назначить параметру типа' ThemeOptions '. Объектный литерал может указывать только известные свойства, а «palette» не существует в типе «ThemeOptions».

...