首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角严格模式抛出和错误为“`Element隐式”有“任意”类型,因为索引表达式不是“数字”类型

角严格模式抛出和错误为“`Element隐式”有“任意”类型,因为索引表达式不是“数字”类型
EN

Stack Overflow用户
提问于 2022-07-28 16:40:31
回答 2查看 151关注 0票数 0

代码:

代码语言:javascript
复制
platformBrowserDynamic().bootstrapModule(AppModule).then(ref => {

  if (window['ngRef']) {
    window['ngRef'].destroy();
  }
  window['ngRef'] = ref;

 
}).catch(err => console.error(err));

以上代码从角度上形成main.ts文件。在这种情况下该如何解决?更新此代码的正确方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-28 18:16:15

将其更改为任何类型

代码语言:javascript
复制
const _window = window as any;
if (_window['ngRef']) {
  _window.destroy();
}
_window['ngRef'] = ref;

上述程序由webpack用于热重装,以确保角度破坏本身在热重负荷。

阅读有关类型记录错误here的文章

顺便说一句,如果您不想使用任何,而是希望使用严格的类型,那么您可以扩展window的类型。

代码语言:javascript
复制
//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;

  })
票数 2
EN

Stack Overflow用户

发布于 2022-11-18 08:16:24

我已经告诉了萨米尔的答案。

代码语言:javascript
复制
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
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73156339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档