一、问题描述

举个例子,在TypeScript中,当我们需要 给window对象添加全局变量 (如testName),或者需要 使用window下自定义创建的变量 (以testName为例)。会出现以下ts报错: 类型“Window & typeof globalThis”上不存在属性 “testName”。产生类型报错的原因是因为window数据类型定义如下:

declare var window: Window & typeof globalThis;

二、解决方案

1、 增加自定义属性声明 ,在类型声明文件typings.d.ts中,增加如下声明

interface Window {
  testName: string;

2、将window类型强制转换为any

(window as any).testName

3、使用方括号

window['testName']

【推荐文章】

微前端系列讲解--应用集成方案(qiankun+umi+vue)https://blog.csdn.net/w544924116/article/details/120105320antd pro项目使用qiankun,loading加载页不消失https://blog.csdn.net/w544924116/article/details/120164997antd pro(ProLayout) mix混合菜单不生效https://blog.csdn.net/w544924116/article/details/120211891Error: Module “xxx“ does not exist in container. / antd pro v5启用qiankun报错 / 同时使用mfsu和qiankun报错https://blog.csdn.net/w544924116/article/details/120123331

感谢您读完本文!如果本文对您有帮助,请点个赞呗,您的点赞是对我最大的支持和认可!

我的公众号:大前端教程,欢迎关注,会定期更新前端知识,希望能帮到您。

VS code 编辑器 node.js 链接: http://nodejs.cn/. 【这里可能出现的问题是:node.js14及之后的版本只适用win8.1以上的系统,win7下13及之前的版本】 中文安装包(非必要) Code.tsTS转换JS) 打开VS code→【工具】→【终端】输入命令【npm i -g typescript 在做vue+typescript开发过程,给window对象添加属性并赋值,却发现报错,如类型“Window & typeof globalThis”上不存在属性“gspZc”。 原则上,TypeScript 需要开发者做到先声明后使用。这就导致开发者在调用很多原生接口(浏览器、Node.js)或者第三方模块的时候,因为某些全局变量或者对象的方法并没有声明过,导致编译器的类型检查失败。 通常情况下,我们给window对象赋值,只需求window.propoerty = 'xxx',但是在此处编译 文章目录8、类型断言语法类型断言的用途将一个联合类型断言为其中一个类型将一个父类断言为更加具体的子类将任何一个类型断言为 `any`将 `any` 断言为一个具体的类型类型断言的限制双重断言类型断言 vs 类型转换类型断言 vs 类型声明类型断言 vs 泛型 8、类型断言 类型断言(Type Assertion)可以用来手动指定一个值的类型。 值 as 类型 在 tsx 语法(React 的 jsx 语法的 ts 版)中必须使用前者,即 值 as 类型。 在输入指令 时候vscode中会报错,像下面这样,然后百度了一下终于解决。然后这里说一下,我的电脑是win10的,win11的话就输入。创建一个app.ts文件,在里面写一行打印,然后我们输入。,这里就会给我们生成一个app.js文件,z再输入。打开PowerShell,选择有管理员权限的。这里注意的就是将这里的2016改为5。首先安装全局的ts-node模块。,然后就可以直接运行ts文件了。 解决React中使用window全局变量出现“Property ‘xx‘ does not exist on type ‘Window & typeof globalThis‘.“的问题