material-ui中的增强主题需要显式转换

时间:2018-09-06 21:55:45

标签: typescript material-ui

按照文档中的说明进行操作,我一直试图在打字稿中自定义主题。这就是我所拥有的

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函数,它会报告此错误

      

    [ts]   类型'{调色板的参数:{primary:{main:string; }; secondary:{main:string; }; }; }”不能分配给“ ThemeOptions”类型的参数。   对象文字只能指定已知的属性,“主题选项”类型中不存在“调色板”。

0 个答案:

没有答案