草庐IT

TypeScript入门

全部标签

JavaScript 到 TypeScript : Intellisense and dynamic members

我有一个JavaScript对象,它动态地允许成员作为访问器属性绑定(bind)到对象的实例:来源functionDynamicObject(obj){for(varpropinobj){Object.defineProperty(this,prop,{get:function(){returnobj[prop];},set:function(value){obj[prop]=value;},enumerable:true,configurable:false});}}用法varobj=newDynamicObject({name:"JohnSmith",email:"john.smi

javascript - 枚举的 typescript 类型别名

我的打字文件中有这个:declarenamespaceSomatic{enumPropType{html,object,css}}在另一个文件index.ts中,我为这个枚举设置了一个更短的别名:typePropType=Somatic.PropType;然后我想在switch语句中使用带别名的枚举类型:switch(propType){casePropType.html:break;...}但是Typescript无法识别带别名的枚举类型值。这里有什么问题? 最佳答案 您应该使用import关键字而不是type:importPro

javascript - 如何在动态加载的 Typescript 中扩展类

我通过npminstall@types/googlemaps将googlemapsJSAPI与google.maps命名空间一起使用。我相信API是动态加载的,因此google.mapsJS全局不能立即可用。但我不明白为什么我会收到运行时错误:UncaughtReferenceError:googleisnotdefined当我尝试使用扩展google.maps.Marker时code>class但不是interface//Noproblem!exportinterfaceUuidMarkerextendsgoogle.maps.Marker{uuid:string;}//Uncaug

javascript - 在 Typescript 中为 `this` 关键字键入注释

我有一个独立函数,旨在使用Function.prototype.call提供的上下文。例如:functionfoo(){returnthis.bar;}>foo.call({bar:"baz"})baz有没有办法在这种情况下为this关键字提供Typescript类型注释? 最佳答案 首先,你可以使用特殊的thisparameter用于识别您期望的对象类型的语法this成为:functionfoo(this:{bar:string}){returnthis.bar;//nomoreerror}如果你直接调用它会有帮助:foo();/

javascript - 我如何解决 'Property ' 宽度'在类型 'HTMLElement' 上不存在。'在 vscode 中使用//@ts-check 类型检查 Javascript(不是 Typescript)时?

在view.js文件中:constcanvas=document.getElementById('canvas');...export{canvas,};在main.js文件中:import*asviewfrom'../src/view.js';...xPosition:view.canvas.width/2,给我'属性'width'在类型'HTMLElement'上不存在。类型检查错误。我不知道如何进行,我对typescript的了解为零,而且程序是用javascript编写的。我读过的所有解决方案都需要使用typescript,这在这个例子中是没有用的。有什么办法可以消除这个错误吗

javascript - typescript : find date difference in dates/hours/minutes

我正在进行日期比较,我正在尝试以日期、小时、分钟的格式计算和显示两个日期之间的差异...日期值存储在数据库中,如下所示:EndDate:2018-11-2910:49:49.9396033PurchaseDate:2018-11-2910:49:07.4154497在我的Angular组件中,我有:letresult=newDate(res.endDate).valueOf()-newDate(res.purchaseDate).valueOf();这导致:42524我不确定它代表什么。我想知道计算两个日期之间时差的正确方法是什么,以及如何以正确且可读的方式显示结果。欢迎任何帮助

javascript - 如何将字符串数组转换为 typescript 类型?

我有这个数组:constarr=["foo","bar","loo"]我需要将它转换为typescript类型typearrTyp="foo"|"bar"|"loo";我如何在typescript中做到这一点? 最佳答案 为3.4及更高版本编辑:在3.4constassertions添加了,所以我们可以使用asconst得到一个字符串字面量类型的元组:constarr=["foo","bar","loo"]asconsttypearrTyp=typeofarr[number];//"foo"|"bar"|"loo"原创问题是arr没

javascript - Yabble入门--浏览器端CommonJS模块加载

有人熟悉Yabble吗?或者其他浏览器端的CommonJS加载器?我正在尝试使用Node.js,并且非常想创建可以在服务器端和客户端互换使用的Javascript模块。这最终可能更像是一种“因为它很棒”的东西,而不是“因为它实用和有用”的东西。因此,我基本上是在尝试让CommonJSrequire()方法在浏览器端工作,这正是Yabble应该做的。我真的不知道从哪里开始。除了在Yabble'sGithubreadme中找到的内容之外,我似乎找不到任何文档,这并没有多大帮助。基本上我所做的就是把它放在一个HTML页面中......require.setModuleRoot('http:/

javascript - TypeScript 可以为 Closure Compiler 输出注释吗?

我正在使用TypeScript,我想使用Closure-Compiler来缩小和混淆构建TS代码后获得的JS输出。我读到GCC能够根据类型定义进行混淆。据我所知(如果我错了,请纠正我)这意味着如果我的代码上有类型注释,那么GCC将使用它们来进行更好的混淆。例如,对于obj.someProp,GCC目前在我的代码中查找someProp属性名称的所有实例,而不考虑它在哪个对象上,并替换所有实例到相同的混淆名称(例如o.a)。但是如果我在我的代码上有类型注释,GCC将能够知道哪个对象属于哪种类型并相应地对其进行混淆-因此两种不同类型的相同属性名称将被混淆为两个不同的名称。问题:我的理解正确吗

HarmonyOS鸿蒙智能硬件入门三步解决鸿蒙智能设备开发环境搭建

本篇适用于初学者开发准备:一台windows电脑、一块开发板(基于Hi3861)(本篇使用小熊派HM-Nano)开发板淘宝有卖:小熊派鸿蒙季BearPi-HM_Nano鸿蒙OpenHarmonyOS系统Hi3861开发板-淘宝网(taobao.com)搭建设备开发需要Linux+windows配合使用,Windows用来写代码,Linux用来编译,本教程使用Ubuntu20.04+Windows1064位。Ubuntu繁琐的配置步骤我都替你做完了,直接将镜像导入虚拟机即可。一、搭建Linux开发环境先获取虚拟机,这个直接网站下载,很快。网址:https://download.virtualbo