众所周知,typescript是一款JavaScript的超集,其作用就是在于让我们开发者在艰辛的开发路途中,避免掉一些不必要的麻烦,这“一些不必要的麻烦”主要体现在于

  • TypeScript规范化了JavaScript代码,使其更易于阅读和调试。
  • TypeScript为JavaScript IDE和实践提供了高效的开发工具,比如静态检查。
  • TypeScript可以帮助我们避免开发人员通过类型检查代码编写JavaScript时经常遇到的痛苦错误。

说到些又不得不说到其一特色:强类型。它使本为弱类型的JavaScript语言在开发阶段也可以像java那些强类型语言一样做一些接口(interface)、类型(type)等定义来加强变量的数据结构定义。

话回正题,这是一个我在日常项使用中的思考,虽然最后没有采用这方案,但是我觉得也是一个比较有趣的点,所以在此记录与分享一下。

期望效果:在window上挂在一个全局变量来控制某一个事件
初步方案:直接在window上添加变量。但是此方案直接被编辑器报错提示window的类型不存在这个对象。
思考:如何在window上添加类型呢?毕竟window是js基础元素,类型都在typescript中都定义好了的这就肯定无法在初始化的时候去定义类型了。

查了资料最后确定了方法:
这里其实就是用了全局属性 declare global 和 声明合并两个属性

代码:

declare global {  //设置全局属性interface Window {  //window对象属性aaa: boolean;   //加入对象}
}
window.aaa=true //不报错

再来使用一下也不会有报错提示了:

TypeScript 中为window对象添加属性相关推荐

  1. js中 给json对象添加属性和json数组添加元素

    json对象: 比如现在有一个json对象为jsonObj,需要给这个对象添加新的属性newParam,同时给newParam赋值为pre.做法如下: var jsonObj={'param1':22 ...

  2. 递归——函数在内部自己调用自己,那么该函数是递归函数 作用和循环效果一样 要加推出条件return,否则发生栈溢出,导致死循环 递归给数组中对象添加属性 toString()和随机数

    递归--函数在内部自己调用自己,那么该函数是递归函数 & 作用和循环效果一样 & 要加推出条件return,否则发生栈溢出,导致死循环 & 递归给数组中对象添加属性 & ...

  3. python定义一个dog类 类属性有名字毛色体重_全面了解python中的类,对象,方法,属性...

    python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性(特征)和行为来描述一个对象的.比如家里的小狗, ...

  4. 前端开发:JS中的Window对象详解

    前言 在前端开发过程中,关于全局对象的使用是非常常用的,其实每个JS环境中都一个全局对象,尤其是在实际开发过程中全局范围内创建任何变量都是这个全局对象的属性,且任何函数都是它的方法.在实际浏览器环境下 ...

  5. js的window对象与属性的使用

    1.BOM的概述     browser object modal :浏览器对象模型.     浏览器对象:window对象.     Window 对象会在 <body> 或 <f ...

  6. python-给对象添加属性与方法

    给对象添加属性 对象.属性名 = 属性值 给对象添加方法 >匿名函数,就是函数体

  7. 如何将一个对象中的List对象添加为子集,且父结构不存在重复数据

    如何将一个对象中的List对象添加为子集,且父结构不存在重复数据 有这样一个需求,把一个客户名下的联系人构建成下拉树结构.如 : A公司 ----联系人:张三 ----联系人:李四 B公司 ----联 ...

  8. JS动态为对象添加属性

    JS允许在创建完一个对象后,动态给对象添加属性.如下 var obj = {};// 动态给对象添加属性的常见方式 obj.name = 'aaa'; obj.age = 22; console.lo ...

  9. vue中给window对象上添加属性的方法

    web页面通讯方法.window.open打开新页面,父子页面通讯的方法最直接的就是获取对方的window对象进行调用父子各自得属性及方法. 下面是整理的几种通讯得方法仅供参考 第一种 // 第一种方 ...

最新文章

  1. [Zjoi2015]诸神眷顾的幻想乡
  2. 注释的编写方式:写明白来龙去脉提高代码产出率
  3. arcgis下的python编程-面向ArcGIS的Python脚本编程
  4. 用verilog语言写的任意整数的分频器
  5. Iphone控件大全
  6. Linux进程间通信四 Posix 消息队列简介与示例
  7. centos7和centos6 开机 运行级别详解和设置
  8. Centos下yum update与yum upgrade的区别
  9. python向数据库中添加参数_python往mysql数据库中写入数据和更新插入数据
  10. OpenCV里IplImage数据结构中width和widthStep极易出错的问题
  11. android textview setellipsize,android中给TextView设置属性ellipsize
  12. 计算机无法使用64位itunes,电脑itunes读iphone不了的解决方法
  13. 2021 天勤率辉计算机考研(附408)
  14. matlab车牌自动定位,超级实用的车牌定位matlab程序
  15. 力扣143 链表重排
  16. mac制作u盘启动盘
  17. Kafka安装(windows)
  18. Arbitrary Shape Scene Text Detection with Adaptive Text Region Representation ----论文翻译
  19. 微信公众号订阅号留言点赞采集抓取爬虫
  20. 最优化理论与KKT条件

热门文章

  1. java-多态课堂练习
  2. apply和call的应用
  3. 没啥价值,不建议读——关于2019北京半程马拉松参赛体会
  4. javaXML方式传输图片 .
  5. oracle 删除一个值,Oracle 删除数据的几种方法
  6. 使用Java生成的ZIP压缩包解压时出现不可预料的压缩文件末端的解决方案
  7. 招人!招人!这篇推文不要标题,只要你!
  8. 网络营销推广有哪些误区?正确的网络推广思路和操作方法
  9. ios部分机型出现select、input等控件点击后失效不可再次点击dug
  10. 大数据背景下的“按图索骥”及基于图片内容搜索的技术