阅读 184

TypeScript 扩展全局 Window 时报错的解决

使用全局 window 上自定义的变更进,TypeScript 会报属性不存在,

console.log(window.foo) // ? Property ‘foo’ does not exist on type ‘Window & typeof globalThis‘.ts(2339)

需要将自定义变量扩展到全局 window 上,可通过在项目中添加类型文件或正常的 .ts 文件,只要在 tsconfig.json 配置范围内能找到即可。

types.d.ts

declare global {
  interface Window {
   	foo: string;
  }
}

此时再使用就正常了,

console.log(window.foo) // ?

如果在进行类型扩展时报如下错误:

Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.ts(2669)

可在类型文件中添加如下内容以指定文件为模板,报错消除。

+ export {};

declare global {
  interface Window {
    foo: string;
  }
}

相关资源

The text was updated successfully, but these errors were encountered:

原文:https://www.cnblogs.com/Wayou/p/14657247.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐