global.d.ts 无效问题解决

这篇具有很好参考价值的文章主要介绍了global.d.ts 无效问题解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

src 同级目录有一个 types目录,其中包含 global.d.ts,如下

declare global {
  interface Window {
    config: {
      url: string;
    };
  }
}

在组件中访问

window.config = 'x';

ts显示此错误

Error:(10, 22) TS2339: Property 'config' does not exist on type 'Window'.

我的tsconfig.json如下

{
  "compilerOptions": {
    "target": "esnext",
    "useDefineForClassFields": true,
    "module": "esnext",
    "moduleResolution": "node",
    "strict": true,
    "jsx": "preserve",
    "jsxImportSource": "vue",
    "sourceMap": true,
    "resolveJsonModule": true,
    "esModuleInterop": true,
    "lib": ["esnext", "dom"],
    "baseUrl": "./",
    "allowJs": true,
    "forceConsistentCasingInFileNames": true,
    "allowSyntheticDefaultImports": true,
    "strictFunctionTypes": false,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "experimentalDecorators": true,
    "noImplicitAny": false,
    "skipLibCheck": true,
    "paths": {
      "@/*": ["src/*"]
    },
    "types": [
      "vite/client"
    ]
  },
  "include": ["src", "types/**/*.d.ts"],
  "exclude": ["dist", "node_modules"]
}

问题解决

方法1

一种简单的方法是从你的 global.d.ts 导出一个空对象,如下所示:

declare global {
  interface Window {
    config: {
      url: string;
    };
  }
}

// 添加此语句后,Typescript/CRA可以提取声明文件:
export {}

方法2

如果你的.d.ts文件不导入或导出任何内容,您可以省略该declare global块。

你需要确保此文件位于@types目录中,或者你已配置typeRoots为包含类型声明的目录,例如文章来源地址https://www.toymoban.com/news/detail-854527.html

{
  "compilerOptions": {
    "typeRoots": [
      "./node_modules/@types/",
      "./types/"
    ]
  }
}

到了这里,关于global.d.ts 无效问题解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决“error #147 declaration is incompatible with xxx xxx (declared at line xx)”问题

    今天分享一个很奇怪的问题,为什么说奇怪,因为今天分享的这个错误是我在移植代码时候遇到的,在其他人的工程中可以正常运行,而我自己的就运行报错,于是来给大家分享一下,说不定有小伙伴知道呢~ 首先,我是在移植关于硬件IIC驱动EEPROM的工程时候,发现下面这部

    2024年02月02日
    浏览(71)
  • TypeScript系列, 通过vue3实例说说declare module语法怎么用[模块声明篇]

    本系列文章是我20年开始写的, 这个模块声明也是本系列的最后一课, 中间因为时间安排间隔了1年, 当时答应大家要补充的, 现在来还债😊. 中间的时间我写了vue3的入门教程, 现在写了一半了吧, 带视频的, 如果有需要的小伙伴可以去看看. https://www.yuque.com/books/share/c0ab3348-87ab-4

    2023年04月22日
    浏览(36)
  • 全网多种方法解决idea中报出的Cannot find declaration to go to的问题

    今早下载一新项目,打开之后,点击对应的代码时,却报出如下错误: 即 Cannot find declaration to go to 。 Cannot find declaration to go to 翻译成中文是 找不到要转到的声明 。 因为我在下载完代码后,在 idea 编辑器中,使用如下命令创建并切换我的分支时,才报出这个错误: idea 切换

    2024年02月07日
    浏览(55)
  • error: #268: declaration may not appear after executable statement in block问题解决方法

    在stm32f407编程中遇到了error: #268: declaration may not appear after executable statement in block,编写代码如下: 报错情况: 问题分析: 在c89(1989年)标准中规定了c文件中局部变量的定义只能放在所有执行语句前,放在开头处;c99(1999年)标准中c文件中局部变量的定义可以放在任何地方

    2024年02月13日
    浏览(45)
  • uniapp 小程序定位无效问题解决之一

    这两个接口之前开发时候还能正常使用,但是昨天调用时候发现,在后台接口设置这里wx.chooseLocation要重新开通, wx.getLocation暂无权限! 一、wx.chooseLocation申请重新开通, 我的审核时间十分钟就通过了! 二、 wx.getLocation 把小程序的服务类目添加一个 工具类-信息查询或其它类

    2024年02月16日
    浏览(32)
  • TS7016: Could not find a declaration file for module './mock/IdeatUserHomeMock'. '/Users/yangtianrui...

    这个错误提示是在告诉你,找不到模块 \\\"./mock/IdeatUserHomeMock\\\" 的声明文件。也就是说,你在使用这个模块的时候,编译器无法确定它的类型,因此给它的类型标记了一个 \\\"any\\\" 类型。 这通常是因为你没有为这个模块安装它的声明文件,或者你没有正确地在你的项目中引入这个模

    2024年03月11日
    浏览(47)
  • 如何解决uc服务端地址无效的问题

    今天发现一个可以处理uc服务端地址无效的简单方法。首先我们不要从dede中的uc模块中去配置,而是去ucenter中的“应用管理”中手动添加,具体方法如下: 点添加新应用自定义安装 然后在 “应用的 URL”中填入织梦dedecms的网站地址 “通信密钥”一项自填一些数字和字母就可以

    2024年02月03日
    浏览(34)
  • Failed to load plugin ‘@typescript-eslint‘ declared in ‘.eslintrc.js‘: Cannot find module ‘typescrip

    今天遇到这个报错搞了一下午,网上百度的很多方法都不适合。现在问题解决了,就把解决方法记录一下。 我是在编译代码(npm run dev)的时候抛出了异常信息,提示自己插件加载失败,找不到对应的模块,介绍下自己的环境,用 vscode+vue2 ,eslint版本 6.8.0 接下来列举下自己

    2024年02月15日
    浏览(57)
  • 安装vite框架,报错“Cannot find module ‘./App.vue‘ or its corresponding type declaration” 问题解决方法

    代码编辑器:vscode ,使用vue3,所以安装了 Volar 插件,可以使 vue 代码高亮显示,不同颜色区分代码块,以及语法错误提示等 提示:如果使用的是vue2,则使用 Vetur 插件;使用 vue3 的话 ,要禁用 Vetur 插件,然后用 Volar 插件。两个插件不要同时使用,会冲突。 报错描述: 安装

    2024年02月11日
    浏览(53)
  • 【TypeScript】TS类型声明(二)

    🐱个人主页: 不叫猫先生 🙋‍♂️作者简介:前端领域新星创作者、华为云享专家、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门到精通、TypeScript从入门到实践 📝个人签名:不破不立 TypeScript从入门到实践专栏 是博

    2024年01月20日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包