草庐IT

【TypeScript】深入学习TypeScript装饰器

全部标签

javascript - 如何在 Angular 2 typescript 应用程序中使用 (mqtt) js 库?

我与how-to-use-moment-js-library-in-angular-2-typescript-app中采用的方法非常相似但仍然得到errorTS2307:Cannotfindmodule'mqtt'.npminstall--savemqtttypingsinstall--savemqtt没有找到打字但是这个找到了...typingsinstallmqtt--save--ambient我的tsconfig.conf看起来像这样{"compilerOptions":{"noImplicitAny":true,"module":"commonjs","target":"ES5

javascript - lodash flow 函数在 typescript 中应该怎么写?

lodash.flow结合了两个或多个功能。lodash.flow(double,addTwo)将返回一个函数,该函数将加倍并添加两个。这个函数应该如何在typescript中输入(当前定义只是返回Function)?declarefunctionflow(f1:(a1:In)=>Intermediate,f2:(a1:Intermediate)=>Out):(a1:In)=>Out适用于两个函数,第一个函数有一个输入参数。我不确定如何扩展定义以适用于所有情况。如果这样调用,我的尝试可以支持多个函数:lodash.flow(f1,lodash.flow(f2,f3))但我正在寻找lod

javascript - 为什么我的 TypeScript 有时会给我一个实例,而有时会给我一个类?

我正在编写一个应用程序来学习TypeScript。它在Chrome中运行良好,但在Edge中运行时出现问题。我有这个方法:setposition(pos:Point){constdiffAsPoint=pos.minus(this.canvasPos);letdiff:Vector2D=diffAsPoint.toVector2D();//我发现,有时diff是一个Vector2D而不是Vector2D的实例。显然,发生这种情况时,对其进行的任何操作都会导致Objectdoesn'tsupportpropertyormethod...toVector2D方法很简单:toVector2D

javascript - typescript 错误地假定该属性是只读的

我有一个用typescript创建的简单react组件,我遇到了以下奇怪的错误。这是我的代码。interfaceState{value:string}classAppextendsReact.Component{constructor(){super();this.state={value:''}}changeHandler=(e:any)=>{letstate=Object.assign({},this.state);state.value=e.target.value;this.setState(state);}render(){return();}}exportdefaultAp

javascript - ( typescript )属性 'window' 在类型 'Global' 上不存在

我正在使用Mocha/Chai进行单元测试并模拟window如下:global.window={innerHeight:1000,innerWidth:1000};可以理解,TSLint提示:Property'window'doesnotexistontype'Global'几个问题...Global是内置的NodeJS/Typescript类型吗?我目前正在通过文件顶部的declarevarglobal消除警告...但这是处理此问题的最佳方式吗?我注意到我还可以通过以下方式解决警告:declareglobal{namespaceNodeJS{interfaceGlobal{windo

javascript - 在创建单例实例时传递选项的 TypeScript 模式

我有一个TypeScript单例类classMySingleton{privatestatic_instance:MySingleton;privateconstructor();publicstaticgetInstance(){if(!MySingleton._instance){MySingleton._instance=newMySingleton();}returnMySingleton._instance;}}现在,我想在创建这个单例实例时传递一些选项。例如,将实例模式设置为生产模式的选项。因此,这可以通过让getInstance接受一个传播到构造函数的选项对象来实现。那么

javascript - 为什么在 JavaScript 中使用 TypeScript 类需要 `.default` ?

我有一个TypeScript类,它是npm包的一部分。为了维护,我将类分解成多个类,并通过继承构建最终的导出类。我认为这对我的问题无关紧要,但我认为最好公开这一点信息。我在ChildClass.ts中这样定义类:exportdefaultChildClassextendsParentClass{…}Tsc的outDir为“build”。package.json文件有一个属性"main":"build/ChildClass.js"同时使用npmlink和npmpack我可以部署包并在TypeScript演示包中毫无问题地使用它。但是,如果我尝试在JavaScript演示中使用该包,con

javascript - TypeScript 持续集成

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

javascript - 深入理解 : How code structure affects the content of date arrays created with loops

背景说明我问了一个关于使用循环定义日期数组的问题。数组是根据名为“dateinterval”的已声明变量定义的。我设计代码的方式导致了与另一个循环相关的错误消息,另一个用户为我提供了另一个循环来解决这个问题。既然我已经仔细比较了两种不同的解决方案,我就是不明白为什么它们不会产生相同的结果。我的代码我开发了以下代码来定义UTC格式的日期数组。然而,结果是自1970年1月1日00:00:00以来以毫秒为单位的日期数组。换句话说,一个数字。for(vari=0;i正确的解决方案下面的代码是另一位用户提供给我的正确代码(再次感谢您!)此代码定义了一组UTC日期。for(vari=0;i我不明白

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