全局声明遇到的一些问题
前提
本来是想给全局window挂载一个属性,但是vite这个不知道怎么,采用之前的全局类型写法一直类型推断不出来,头疼了好久,也没想到啥原因,先把问题解决方案记一下。
解决方案
创建了一个global.d.ts
文件,内容如下:
/** 安卓套壳包提供的api */
interface AndroidEMInterface {
/** 清理缓存方法 */
cleanCache(): void;
}
declare global {
interface Window {
AndroidEM?: AndroidEMInterface;
}
}
declare const AndroidEM: undefined | AndroidEMInterface;
这样声明,直接使用AndroidEM
可以,但是通过window.AndroidEM
就会出现错误。
最后只能才用这种方式来声明window的属性:
declare interface Window {
AndroidEM?: AndroidEMInterface;
}
这样写就没问题了,个人怀疑可能是全局命名空间的问题导致的,暂时不清楚具体原因,等搞明白了再贴上。
分类:
TypeScript
标签:
TypeScriptdeclare全局声明
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据