草庐IT

【TypeScript】TS中type和interface在类型声明时的区别

全部标签

javascript - 对象原型(prototype)上的 toString().call() 如何获取数组的类型

我正在查看代码以确定一个对象是否为数组,然后我遇到了thisanswer.代码运行良好,但我无法理解它是如何与[objectArray]进行比较的我试图获取typeofArray,但它抛出了一个错误。所以我对这段代码感到困惑”if(Object.prototype.toString.call(someVar)==='[objectArray]'){我很想知道对象上的toString.call(_ON_AN_ARRAY_)方法调用如何正确获取数组对象的类型。 最佳答案 从技术上讲,数组是一个对象,所以当您执行typeofarrayVa

javascript - 在 typescript 中获取函数名称

我正在寻找一种方法来获取传入参数的函数名称console.clear();classA{test(){}testCall(fnc:Function){console.log(fnc.name);//iwantitdisplaytestherenotemptyconsole.log(fnc);}}vara=newA();a.testCall(a.test);你可以在jsbin中查看http://jsbin.com/loluhu/edit?js,console 最佳答案 我发现这是typescript中的一个错误你可以在这里找到解决方案

javascript - 是否可以知道 input type = datetime-local 是否已填充一半?

是否有可能知道inputtype=datetime-local是否已填充一半?比如只填日期或者时间?无论是空的还是半填的,input标签的元素对象值为空。varvaluedate=document.getElementById('dueDate');console.log(valuedate.value());对于这两种情况,Date.parse也会返回NaN。有可能的解决方案吗?如果有帮助,我正在使用Jquery和AngularJS。随意使用其他输入类型(没有额外的库)发布更清晰的解决方案。目的是让用户填写这两个字段。编辑:字段可以留空或完全填写。我需要知道它是否已填满一半,以便我可

javascript - JQueryStatic 类型上不存在属性

我编写了一个jQuery插件,我在其中使用了jQuery的内部_data方法。这导致上述编译器错误。(function($){varevts=$._data(document,'events');//internalmethod....我可以抑制这个错误吗?如何抑制?解决此问题的推荐方法是什么?我知道我可以做到以下几点:$["_data"]或($asany)._data但我更愿意让$._data成为一个有效的方法调用。 最佳答案 butIwouldprefermakinga$._dataavalidmethodcall.这些类型有意

javascript - Visual Studio Code - JavaScript 文件的类型提示

是否可以将类型信息提供给JavaScript文件的VSCodelinter?我有一个JavaScript文件和一个.d.ts文件,我想使用此.d.ts文件解析JavaScript文件以查找类型错误。那可能吗?如果不能直接在VSCode中使用,是否可以使用其他工具?添加示例://file.d.tsdeclarefunctionf(x:number):number;//file.jsfunctionf(x){returnx*2;}f('Notanumber');//Thisshouldbeanerror 最佳答案 一般来说,您需要创建一

javascript - TypeScript 可更新和枚举引用

我有一个用JavaScript编写的外部SDK,我正在使用它。这些模块之一,Blob是可更新的,但也公开了一个枚举FooEnum(成员Bar和Baz).在JavaScript中使用此SDK的代码如下:constblobInstance=newSdk.Blob();constfooType=Sdk.Blob.FooEnum.Baz;我现在正在尝试编写一个接口(interface),我可以将此SDK转换到该接口(interface),以提供一些类型安全性。这是我到目前为止所得到的:interfaceBlobInterface{}enumFoo{Bar,Baz}interfaceSdk{Bl

javascript - 如何在 Vue.js - Nuxt - TypeScript 应用程序中访问路由参数?

我正在构建一个基于NuxtTypeScriptStarter的网站模板。我在我的页面文件夹中创建了一个动态路由的页面_id.vue,我想在我的TS类中访问该id属性。我可以通过编写{{$route.params.id}}在我的模板中访问它,但是当我尝试在类中引用$route时,我得到一个错误:errorTS2304:Cannotfindname'$route'. 最佳答案 作为一个简单的解决方案,尝试从vue-router导入路由,如下所示:importComponentfrom"vue-class-component"import

javascript - 使用 javascript 扩展 typescript 库

我正在使用Ionic3构建一个简单的map应用程序,以便展示我正在使用leaflet(打字版)和OpenStreetmap图block我想给用户下载和缓存map的可能性,因此我找到了leaflet-offlinehere并想使用它,因为它允许我使用我的localstorage来存储图像。现在我的问题出现了,因为我正在尝试将typescript与javascript混合使用,但我不知道如何使其正常工作。我做了什么,有什么问题:我安装了leaflettyped版本,然后安装了leaflet-offlinejavascript版本。现在我在我的页面中按如下方式导入它们:import*asle

javascript - 使用 enzyme 和 TypeScript 的浅层 HOC

我有一个HOC要测试,在浅挂载期间我应该调用一些类方法:it('Shouldnotcalldispatch',()=>{constdispatch=jest.fn()constWrappedComponent=someHoc(DummyComponent)constinstance=shallow(,).instance()asWrappedComponentinstance.someMethod()expect(dispatch).toHaveBeenCalledTimes(0)})测试工作正常但TS编译器抛出错误Cannotfindname'WrappedComponent'.这是

javascript - 为什么 TypeScript 转译器将枚举编译成字典查找而不是简单的对象?

我很好奇为什么TypeScript转译器将枚举编译成字典查找而不是简单的对象。这是一个TypeScript枚举示例:enumtransactionTypesEnum{None=0,OSI=4,RSP=5,VSP=6,SDIV=7,CDIV=8}这是TypeScript发出的JS代码:varTransactionTypes;(function(TransactionTypes){TransactionTypes[TransactionTypes["None"]=0]="None";TransactionTypes[TransactionTypes["OSI"]=4]="OSI";Tran