在 Angular 9 中使用 Typescript 查找 ResizeObserver

新手上路,请多包涵

我正在尝试在 Angular 应用程序中实现 ResizeObserver:

 const obs = new ResizeObserver(e => {
      // ...
});

…并遇到 TS 错误:

 TS2304: Cannot find name 'ResizeObserver'.

我试图更新我的类型定义:

 @types/resize-observer-browser

…但是我的问题仍然存在。是否有可取的解决方案或通用的解决方法,或者使用像“resize-observer”这样的 NPM 包来继续前进会更好吗?

如果需要,很乐意提供更多信息。

谢谢!

原文由 jared jessup 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 462
1 个回答

我建议使用 resize-observer-polyfill 它有类型(在 d.ts 文件中),如果浏览器支持 Resize Observer,它只使用本机实现,但它有更大的支持,因为它使用 Mutation Observer 作为后备,有更大的支持.

所以只需使用:

 import ResizeObserver from 'resize-observer-polyfill';

浏览器支持比较:

如您所见,Mutation Observer 甚至可以在 IE 11 中运行。

原文由 jcubic 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题