草庐IT

TypeScript 测验

全部标签

javascript - TypeScript 持续集成

有没有人有将TypeScript添加到持续集成系统的好策略?我计划在我的构建中编译它,然后针对它生成的JavaScript运行单元测试。但是,我想为TypeScript添加代码标准检查。有什么想法吗?谢谢。 最佳答案 TypeScript团队故意保留对官方编码标准的判断,因为他们想看看人们在现实生活中如何使用这种语言。有趣的是,人们似乎遵循JavaScript命名约定,即ModuleName、ClassName、functionName。您可以使用TypeScript(tsUnit)或JavaScript(Jasmine、QUnit

javascript - es6 模块到 commonjs,在 node harmony 标志下使用 typescript

我在--harmony标志下使用带有Node的TypeScript(1.6),所以我想将es6模块语法转换为commonjs。据我所知,我无法使用TypeScript1.6执行此操作。如果我将目标设置为es6,并将模块设置为commonjs,我会收到TypeScript错误-Cannotcompilemodulesinto'commonjs','amd','system'or'umd'whentargeting'ES6'orhigher.为什么TypeScript不能编译成带有ES6目标的commonjs?我想很多人都想这样做,因为Node还不支持ES6模块。我原以为新的moduleR

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 - 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