比如我给window全局扩展了一个属性

demo/global.d.ts

declare  global {
interface Window {
$electron: any;
}
} export {}; // 修复:全局范围的扩大仅可直接嵌套在外部模块中或环境模块声明中

但是编辑器依然不会识别

这是因为你的类型文件并没有被ts加载,需要修改如下

tsconfig.json 或 tsconfig.app.json 中修改如下

{
//...
"include": ["global.d.ts", ...]
}

其它注意

识别为模块文件

声明文件 *.d.ts 里,不使用 import export 等 es6 模块化相关语法,因为开发环境会把当前文件识别成模块 而非类型文件。

两种写法

方式1(推荐)

// 提取类型定义
type ElectronType = { [key: string]: any }; interface Window { //扩展widow全局对象属性声明
$electron: ElectronType;
}
declare const $electron: ElectronType; // 声明全局变量

方式2

这会将此文件识别为模块化文件,需要你导出一个空来防止报错

declare global {
interface Window {
$electron: ElectronType;
}
const $electron: ElectronType; // 声明全局变量
} export {}; // 修复:全局范围的扩大仅可直接嵌套在外部模块中或环境模块声明中

两种方式都可以让一下代码正常被识别编译

<script setup lang="ts">
console.log($electron);
console.log(window.$electron);
</script>

如何省略window访问全局对象

ts.config.js

{
"compilerOptions": { "lib": [..., "DOM", "DOM.Iterable"],
// ...
}

这样你就可以直接在js中使用 location.href等全局方法或属性,而不用window.location.href

d.ts文件无法识别的更多相关文章

  1. 如何编写一个d.ts文件

    这篇文章主要讲怎么写一个typescript的描述文件(以d.ts结尾的文件名,比如xxx.d.ts). 2018.12.18更新说明: 1.增加了全局声明的原理说明. 2.增加了es6的import ...

  2. 转载:《TypeScript 中文入门教程》 14、输入.d.ts文件

    版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 当使用外部JavaScript库或新的宿主API时,你需要一个声明文件(.d.t ...

  3. Atitit.论图片类型 垃圾文件的识别与清理  流程与设计原则 与api概要设计 v2 pbj

    Atitit.论图片类型 垃圾文件的识别与清理  流程与设计原则 与api概要设计 v2 pbj 1. 俩个问题::识别垃圾文件与清理策略1 2. 如何识别垃圾图片1 2.1. 体积过小文件<1 ...

  4. 转 :Vim文件编码识别与乱码处理

    Vim文件编码识别与乱码处理   在 Vim 中,有四个与编码有关的选项,它们是:fileencodings.fileencoding.encoding 和 termencoding.在实际使用中,任 ...

  5. [转]webstorm中js文件被识别成txt类型

    问题描述: webstorm中index.js文件被识别成txt格式,如下图. 原因: webstorm中js文件被识别成txt文件,原因在于txt类型识别了以当前js文件名命名的模式. 解决办法: ...

  6. 加密的m3u8、ts文件合并

    加密后的ts文件不能直接合并或播放,需要使用key对每个ts文件进行解密. 分为两种情况: (1).如果ts文件已经全部下载好,则可以直接在本地通过ffmpeg快速解密合并. (2).如果ts文件没有 ...

  7. 一条命令将windows下多个ts文件合并为一个ts文件

    首先在待合并的文件夹下创建concat.bat(名字随意啦),写入如下命令 copy /b "%~dp0"\*.ts "%~dp0"\new.ts 执行该命令后 ...

  8. 指定一个M3U8文件,判断它包含的TS文件是不是都存在。指定一个Office生成的Swf文件,判断它包含的Swf文件是不是完整都存在。

    static void Main(string[] args) { //检查M3u8文件 var fiPath = @"D:\Work\CloudPlatformUtil\CloudPlat ...

  9. Python3 根据m3u8下载视频,批量下载ts文件并且合并

    Python3 根据m3u8下载视频,批量下载ts文件并且合并 m3u8是苹果公司推出一种视频播放标准,是一种文件检索格式,将视频切割成一小段一小段的ts格式的视频文件,然后存在服务器中(现在为了减少 ...

  10. python爬虫:抓取下载电影文件,合并ts文件为完整视频

    目标网站:https://www.88ys.cc/vod-play-id-58547-src-1-num-1.html 反贪风暴4 对电影进行分析 我们发现,电影是按片段一点点加载出来的,我们分别抓取 ...

随机推荐

  1. Robot Framework使用循环

    1.普通的For循环 在一个普通的For循环中,循环开始的关键字是 :FOR ,其中的:用于与一般关键字做区分,对于循环结 构体内的每一行,使用 \ 作为改行的行首关键字.对于循环中的变量,可以在 I ...

  2. 关于:js怎么获取元素的自定义属性的问题(原生JavaScript)

    最近项目需要把后端传过来的数据隐藏的保存在页面中,方便后边做事件处理时使用.鉴于之前总是在后端处理后的页面中看到元素里除了常见的id.name属性外的data-xxx,就想到:元素的属性必然是可以自定 ...

  3. 解决chrome浏览器拓展插件颜色变成透明无法使用。

    虚拟机装了chrome之后插件变成了透明的,没办法使用了. 解决办法如下: 1.卸载VMWARE tools 2.地址栏输入: chrome://flags 找到 "Choose ANGLE ...

  4. 通过adb访问SQLite数据库

    根据<第一行代码>第二版进入到数据库的文件夹,但是如果照书本直接cd data/data/包名/databases 的话是会报错的,错误信息如下 cd: /data/data/包名 /da ...

  5. Oracle 使用UTL_HTTP发送http请求--转载

    参考:https://blog.csdn.net/tmaczt/article/details/82665885 GET方式 CREATE OR REPLACE FUNCTION FN_HTTP_GE ...

  6. rust程序静态编译的两种方法总结

    1. 概述 经过我的探索,总结了两种rust程序静态编译的方法,理论上两种方法都适用于windows.mac os和linux(mac os未验证),实测方法一性能比方法二好,现总结如下,希望能够帮到 ...

  7. 深入理解 JavaScript 模板引擎

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  8. C++右值和移动

    值分左右 C++表达式的值类别: 这些名词的字面含义: 一个lvalue是通常可以放在等号左边的表达式,左值 一个rvalue是通常只能放在等号右边的表达式,右值 一个glvalue是generali ...

  9. PHP MD5强碰撞

    MD5强碰撞 搬得这个师傅的 https://www.cnblogs.com/kuaile1314/p/11968108.html 可以看到,使用了三个等号,这个时候PHP会先检查两边的变量类型,如果 ...

  10. qt中常用lambda表达式

    qt中lambda表达式 什么是lambda 个人理解:没有函数名的函数 qt中使用基础 备注:都是在qt5中做的使用,我的qt版本是qt5.11.3 pro文件中 config+=c++11 常见的 ...