我有一个Chrome扩展,它注入一个内容脚本和一个组件库来显示UI(使用StencilJS构建).我在一些网站上发现,在给定新状态的情况下,我们的用户界面无法正确显示.

经过多次调试,我发现这些网站的共同点是WinJS.似乎WinJS将其On Promise实现设置为window.Promise.这似乎是我们的用户界面问题的原因.

有没有办法在构建/运行时强制执行代码/模板库的本机promise ,以防止我们干扰页面,反之亦然?我们使用Stensel的标准构建配置和webpack一起将代码Bundle 成Chrome扩展格式.

推荐答案

本机Promise构造函数/对象可以从以下位置检索:

(async _ => _)().constructor

因此,让您的内容脚本将Promise重新定义为全局变量或包装函数中的局部变量,以便它只影响该脚本:

var Promise = (async _ => _)().constructor;

Typescript相关问答推荐

如何使用Generics保留构造函数的类型信息?

用泛型类型覆盖父类函数导致类型y中的Property x不能赋给基类型Parent中的相同属性."'''''' "

React typescribe Jest调用函数

如何在Typescript 中输入两个相互关联的变量?

STypescript 件的标引签名与功能签名的区别

如何在编译时为不带常量的参数引发错误

是否可以从函数类型中创建简化的类型,go 掉参数中任何看起来像回调的内容,而保留其余的内容?

Angular文件上传到Spring Boot失败,多部分边界拒绝

Fp-ts使用任务的最佳方法包装选项

Angular material 无法显示通过API获取的数据

如何在React组件中指定forwardRef是可选的?

TypeScrip错误:为循环中的对象属性赋值

map 未显示控制台未显示任何错误@reaction-google-map/api

为什么`map()`返回类型不能维护与输入相同数量的值?

我可以使用JsDocs来澄清Typescript实用程序类型吗?

换行TypeScript';s具有泛型类型的推断数据类型

从泛型对象数组构造映射类型

Typescript 子类继承的方法允许参数中未定义的键

通用可选函数参数返回类型

具有来自其他类型的修改键名称的 TypeScript 通用类型