angular - 类型 'ModuleWithProviders' 必须有一个返回迭代器的 '[Symbol.iterator]()' 方法.ts(2488)
我尝试使用 Ngx-admin 并设置主题,但出现错误:类型 'ModuleWithProviders' 必须有一个返回迭代器的 'Symbol.iterator' 方法。ts(2488) 我该如何解决这个错误?请帮帮我
export class ThemeModule {
static forRoot(): ModuleWithProviders<ThemeModule> {
return {
ngModule: ThemeModule,
providers: [
...NbThemeModule.forRoot(
{
name: 'default',
},
[DEFAULT_THEME, COSMIC_THEME, DARK_THEME],
null,
NbLayoutDirection.RTL
),
],
};
}
}
答案#1
问题出在紧跟扩展运算符之后的内容上。
改用这种方法。
const nbThemeModule: any = NbThemeModule.forRoot(
{
name: 'default',
},
[DEFAULT_THEME, COSMIC_THEME, DARK_THEME],
null,
NbLayoutDirection.RTL
)
然后在 @ngModule 中,
export class ThemeModule {
static forRoot(): ModuleWithProviders<ThemeModule> {
return {
ngModule: ThemeModule,
providers: [
...nbThemeModule,
],
};
}
}
这将修复这个问题,这只是一个临时的解决方法。
答案#2
我认为这是由于 tsconfig.json 中的严格编译器选项标志引起的。
在我的情况下,一个简单的解决方法是:
export class ThemeModule {
static forRoot(): ModuleWithProviders<ThemeModule> {
return {
ngModule: ThemeModule,
providers: [
...NbThemeModule.forRoot(
{
name: 'default',
},
[ DEFAULT_THEME, COSMIC_THEME, CORPORATE_THEME, DARK_THEME ],
).providers || [],
],
};
}
}
试着在末尾加上 || []。
我希望这能帮到你。
