草庐IT

typescript-eslint

全部标签

javascript - TypeScript 处理接口(interface)和类中多余属性的方式不同

我最近在TypeScript中偶然发现了这种奇怪的(imo)行为。在编译期间,只有当预期变量的类型是接口(interface)且接口(interface)没有必填字段时,它才会提示过多的属性。链接到TypeScriptPlayground#1:http://goo.gl/rnsLjdinterfaceIAnimal{name?:string;}classAnimalimplementsIAnimal{}varx:IAnimal={bar:true};//Objectliteralmayonlyspecifyknownproperties,and'bar'doesnotexistinty

javascript - 使用类将 JSON 对象转换为 typescript 类型变量的正确方法?

这是我正在尝试做的一个更简单的例子:exportclassPerson{id:Number;name:String;}exportclassPersonForm{//Thisline:default:Person={name:"Guy"};//Givesthefollowingerror://Error:(25,5)TS2322:Type'{name:string;}'isnotassignabletotype'Person'.//Property'id'ismissingintype'{name:string;}'.//Itried{name:"Guy"}butitgivesthes

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 - 如何解决 Component should be written as a pure function error in eslint-react?

constHeader=React.createClass({contextTypes:{router:React.PropTypes.object.isRequired,},render(){return(AB);},});我使用eslint-config-airbnb检查上面的代码,它向我显示一条错误消息,例如Componentshouldbewrittenasapurefunction。那么如何将上面的组件改成纯函数呢?感谢您的帮助。 最佳答案 当你有一个“哑”组件(没有内部状态、生命周期方法等)时,你可以将它写成一个简单的j

javascript - 如何在 ESLint 中对齐 const 缩进?

我正在使用ESLint使我的JavaScript代码风格保持一致。我最喜欢的缩进级别是4,我希望我的声明样式是这样的:function(){leta=1,bbb=2;constcc=3,ddd=4;}但是有一个问题,因为indent每个结构的规则都有一个数字,它是基本缩进的乘积。如果我将我的基本缩进设置为4,我似乎无法对齐常量。如果我将规则设置为:"indent":["error",4,{"VariableDeclarator":{"const":1}}],正确的对齐方式是4个空格:constcc=3,ddd=4;如果我将规则设置为2:"indent":["error",4,{"Var

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