按照文档中的说明进行操作,我一直试图在打字稿中自定义主题。这就是我所拥有的
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',
},
}
});
问题有两个:
我不需要显式转换createMuiTheme
,但是如果我不明白,则
[ts]无法调用类型缺少调用签名的表达式。类型'typeof import(“ @ material-ui / core / styles / createMuiTheme”)'没有兼容的呼叫签名。
我实际上不能使用createTheme函数,它会报告此错误
[ts] 类型'{调色板的参数:{primary:{main:string; }; secondary:{main:string; }; }; }”不能分配给“ ThemeOptions”类型的参数。 对象文字只能指定已知的属性,“主题选项”类型中不存在“调色板”。