草庐IT

language-typescript

全部标签

javascript - 如何配置 karma 以便 typescript 源文件是可调试的

我已经下载了一个种子项目Angular2WebpackStarter并顺利启动并运行。我使用它时遇到的一个不便是在单元测试下调试源文件。所有*.spec.ts文件都加载到浏览器中并可调试,因此至少为它们生成map文件。当我进入一个正在测试的源文件时,我得到如下信息:karma配置:module.exports=function(config){vartestWebpackConfig=require('./webpack.test.js');config.set({basePath:'',frameworks:['jasmine'],exclude:[],files:[{pattern

javascript - 为什么 TypeScript 将每个数字视为自己的类型?

表达式1==2导致TypeScript给出错误Operator'=='cannotbeappliedtotypes'1'and'2'。TypeScript将这些值视为不同类型的原因是什么?将其专门应用于数字是设计决定,还是整个打字系统的副产品?允许比较文字会造成什么危害? 最佳答案 1和2在这种情况下被认为是所谓的文字数字。这意味着值1的类型为1,因此只能是1,与2相同。鉴于此,1==2的表达式没有意义,因为1永远不可能是2,或者更准确地说,它们的类型不匹配,你无法将苹果与橙子进行比较。以下是有关默认假定文字类型的基本原理和详细信息

javascript - 如何阻止 VS 2013 生成 TypeScript 映射文件

有谁知道如何阻止VS2013为TypeScript生成*.map文件?我们不是他们的super粉丝,因为他们:往往与实际的javascript源代码不同步停止您在Chrome开发者工具等工具中进行编辑/继续调试的能力我可以通过构建后步骤删除它们,但是生成的javascript仍然有://#sourceMappingURL=someFile.js.map这让浏览器寻找map文件(生成404)。即使我们尝试构建一个在Release模式下具有TypeScript的项目,它仍然会生成带有映射文件引用的JS。有办法止痛吗? 最佳答案 在Typ

javascript - 将时刻导入 TypeScript 项目

我正在尝试在我的TypeScript项目中使用moment,但是当我使用该行时,importmomentfrom'moment';我得到错误:'node_modules/moment/moment'hasnodefaultexport.我也试过,importmomentfrom'moment/src/moment';但是我得到了错误:'Cannotfindmodulemoment/src/moment'.有人知道这样做的方法吗?谢谢。 最佳答案 正确的语法是:import*asmomentfrom'moment';

javascript - 在 Typescript 单元测试中模拟

问题是,如果对象足够复杂(在任何强类型语言中都是如此),Typescript中的模拟可能会变得棘手。你通常会模拟一些额外的东西只是为了编译代码,例如在C#中,你可以使用AutoFixture或类似的东西。另一方面,Javascript是动态语言,可以只模拟测试运行所需的对象的一部分。所以在Typescript单元测试中,我可以使用any类型声明我的依赖关系,从而轻松模拟它。您看到这种方法有什么缺点吗?letuserServiceMock:MyApp.Services.UserService={//lotsofthingtomock}对比letuserServiceMock:any={u

javascript - 采用一个或一组对象的 Typescript 函数

我们经常使用简单的函数声明,其中函数接受单个对象或某种类型的对象数组。简单的声明是:interfaceISomeInterface{name:string;}classSomeClass{publicnames:ISomeInterface[]=[];publicaddNames(names:ISomeInterface|ISomeInterface[]):void{names=(!Array.isArray(names))?[names]:names;this.names=this.names.concat(names);}}但是TypeScript抛出“类型不可分配”错误。有更好的

javascript - 浏览器语言检测 : inconsistency between user agent and window. navigator.language

我这样检测浏览器语言:varlanguage=window.navigator.userLanguage||window.navigator.language然后我使用AJAX调用将这个值发送到我的网络服务器。当我检查结果时,我看到了一件奇怪的事情。例如,浏览器的用户代理说当前语言环境是tr-tr,但是当我检查window.navigator.language时,我得到的结果是en.所有这些浏览器都说他们的语言是en:Mozilla/5.0(Linux;U;Android2.2.2;tr-tr;GMFOXBuild/HuaweiU8350)AppleWebKit/533.1(KHTML

javascript - WebStorm IDE 上 DefinitelyTyped(TypeScript 类型定义)的智能感知和代码完成

如何让WebStormIDE为我下载的库提供代码补全。如您所见,angularjs-DefinitelyTyped和jQuery-DefinitelyTyped已下载。现在我认为我必须在我的.ts文件中引用定义文件。但是,WebStorm在哪里保存定义文件以便我可以在我的代码中引用它们?谢谢! 最佳答案 正如basarat在他的回答中所说,您需要手动包含定义。最简单的方法是使用tsd.安装后(npminstall-gtsd),导航到您想要保存类型的目录,然后安装定义文件(例如下例中的angular),如下所示:tsdqueryang

javascript - 为什么无法在 TypeScript 中导出类实例?

我没有找到在TypeScript中轻松导出类实例的方法。我不得不想出以下解决方法来生成正确的javascript代码。varexpo=newLogger("default");export=expo;生成varexpo=newLogger("default");module.exports=expo;有没有更简单的方法来实现这一点? 最佳答案 很偶然,我发现了这种导出实例的方法:classMyClass(){}exportdefaultnewMyClass(); 关于javascript

javascript - typescript 的国际奥委会

现在有了TypeScript,我们在JavaScript中有了静态分析和许多OOP特性。因此,现在也是在客户端逻辑中进行更好的单元测试的时候了,我们还需要IOC容器来进行依赖注入(inject),以使代码更易于测试......那么,有人已经体验过这个主题,或者可能知道可以移植到TypeScript的TypeScript或JavaScript框架的库吗? 最佳答案 我开发了一个名为InversifyJS的IoC容器,它具有上下文绑定(bind)等高级依赖注入(inject)功能。您需要遵循3个基本步骤才能使用它:1。添加注释注解API