代码:
platformBrowserDynamic().bootstrapModule(AppModule).then(ref => {
if (window['ngRef']) {
window['ngRef'].destroy();
}
window['ngRef'] = ref;
}).catch(err => console.error(err));以上代码从角度上形成main.ts文件。在这种情况下该如何解决?更新此代码的正确方法是什么?
发布于 2022-07-28 18:16:15
将其更改为任何类型
const _window = window as any;
if (_window['ngRef']) {
_window.destroy();
}
_window['ngRef'] = ref;上述程序由webpack用于热重装,以确保角度破坏本身在热重负荷。
阅读有关类型记录错误here的文章
顺便说一句,如果您不想使用任何,而是希望使用严格的类型,那么您可以扩展window的类型。
//This will tell typescript that window also contains ngRef property
type windowExtended = Window & typeof globalThis & {
ngRef: NgModuleRef<AppModule>;
}
platformBrowserDynamic().bootstrapModule(AppModule)
.then(ref => {
const _window = window as windowExtended;
if (_window['ngRef']) {
_window['ngRef'].destroy();
}
_window['ngRef'] = ref;
})发布于 2022-11-18 08:16:24
我已经告诉了萨米尔的答案。
type WindowExtended = Window & typeof globalThis & {
ngRef: ApplicationRef;
}
bootstrapApplication(AppComponent)
.then((ref: ApplicationRef) => ensureDestroyOnHotReload(ref))
.catch((err) => console.error(err));
function ensureDestroyOnHotReload(ref: ApplicationRef): void {
let { ngRef } = window as WindowExtended
if (ngRef) {
ngRef.destroy()
}
ngRef = ref
}https://stackoverflow.com/questions/73156339
复制相似问题