小编Bra*_*don的帖子

如何将Sinon与Typescript一起使用?

如果我将sinon与typescript一起使用,那么如何将sinon mock转换为我的对象的实例?

例如,将返回SinonMock,但我的测试控制器可能需要传递给其构造函数的特定服务.

var myServiceMock: MyStuff.MyService = <MyStuff.MyService (sinon.mock(MyStuff.MyService));

controllerUnderTest = new MyStuff.MyController(myServiceMock, $log);
Run Code Online (Sandbox Code Playgroud)

sinon可以和Typescript一起使用吗?

unit-testing sinon typescript

22
推荐指数
4
解决办法
2万
查看次数

如何使用RxJS重试超时持续时间?

我正在使用最新的Angular和Typescript以及RxJS 5.

Angular目前使RxJS成为必需品.我已经使用C#超过10年了,我非常习惯Linq/Lambdas /流利的语法,我认为它构成了Reactive的基础.

我想在重试时使用越来越大的超时值进行Http get调用,但是我遇到了一个问题,看看如何做到并仍然保持管道中的所有内容(不使用外部状态).

我知道我可以这样做,但它只会使用相同的超时值重试.

myHttpObservable.timeout(1000).retry(2);
Run Code Online (Sandbox Code Playgroud)

RxJS的文档在很多地方都很差,在这里询问它只是删除了我的问题,这很难过......所以我被迫查看源代码.

有没有办法以每次增加超时持续时间的方式重试,以保持状态在管道中?此外,我想在第一次尝试时保留一个初始超时.

我一开始尝试过与此类似的东西,但实现了令人困惑的重试当操作符并非真正用于我想要的东西时:

myHttpObservable.timeout(1000).retryWhen((theSubject: Observable<Error>) => {
 return  aNewMyObservableCreatedinHere.timeout(2000);  
});
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用外部状态来实现这一点,但我基本上都在寻找一种优雅的解决方案,我认为,这是他们用反应式编程方式所驱动的.

reactive-programming rxjs rxjs5 typescript2.0 angular

9
推荐指数
3
解决办法
3526
查看次数

进入特定Angular 2.0 SPA状态的外部链接不起作用

我正在使用AngularJS 2.4.6,Typescript 2.1.2,IIS 8.0,Chrome,Visual Studio 2015

我正在使用Angular Heroes教程并注意到当我刷新浏览器时我得到了404响应(由于PathLocationStrategy -aka HTML5路径 - 默认使用)...所以这是有道理的,因为IIS看不到/仪表板返回.

有很多解决方案使用URL重写,我做了,确实正确地路由到index.html.

我的问题是,当我刷新浏览器时,我希望它处于相同的状态.这与使用哈希策略的角度1.5一样好用.

我是否需要做一些特定的事情来创建这种行为?原样(Angular 2.0),刷新结束导致基本状态显示而不是我所在的状态.

我注意到Rewrite操作将301发送回浏览器,因此index.html再次不知道预期的状态.

重要的是,外部链接(例如,从电子邮件中)到Angular 2 app特定状态的工作方式如何?

例如,如果我发送一封包含我的应用程序链接的电子邮件,例如:
https:// myserver/some/path/to/aState

这个简单的场景似乎不适用于我尝试过的所有内容.

该项目不涉及MVC.客户端代码向webapi middletier web发出ajax请求,但出于我要求的目的,你可以假设根本没有http调用.

iis html5 url-rewriting angular2-routing angular

8
推荐指数
1
解决办法
312
查看次数

npm类型或打字或@type或什么?

我正在使用VS 2015更新3,Angular 2.1.2,Typescript 2.0.6

有人可以澄清一下与npm @types相比什么样的打字与本月有什么难以找到的文件?

或者只是指出有关使用这些东西的内容和方法的文档.优选地,文档应该是最新的.

另外,在相关意义上,如何卸载.我看到的每个地方都有安装软件包的有用扩展,但至少我无法解释.我安装了Package Installer扩展,但似乎相当有限.

在Visual Studio中使用这些东西的痛苦是想要走开并再次做MVC.也许这只是我,但似乎不应该这么困难.

npm node-modules typescript typescript-typings angular

8
推荐指数
1
解决办法
2420
查看次数

如何在定义文件中引用Typescript枚举

我正在使用安装了更新4和Typescript 1.3的Visual Studio 2013.

如果我有一个打字稿文件,如下所示:

MyEnums.ts:

export = MyEnumModule;
module MyEnumModule {
    export enum AnEnum { RED, BLUE, GREEN }
}
Run Code Online (Sandbox Code Playgroud)

我有一个像这样的定义文件:

MyDefinitions.d.ts:

declare module MyDefinitions {
    interface ISomeInterface {
        aProperty: string;
        aMethod: () => void;
        aColor: MyEnumModule.AnEnum;
    }
}
Run Code Online (Sandbox Code Playgroud)

我基本上得到一个错误"找不到名字'MyEnumModule'"

从typescript文件引用时,此枚举文件可正常工作.例如:

SomeCode.ts:

export = MyCode;

import MyEnums = require('MyEnums');

module MyCode{

    export class MyClass implements ISomeInterface {
        public aColor: MyEnums.AnEnum = MyEnums.AnEnum.RED;
        ...and so on
Run Code Online (Sandbox Code Playgroud)

我的理解是添加/// <reference...或导入将不适用于.d.ts文件(我试图确保它看起来无论如何都不起作用).

有谁知道如何在这样的定义文件中引用枚举?

提前致谢.

--update:

这是我在尝试下面的Steve Fenton建议后看到的错误(我刚刚制作了一个示例项目).

MyDefinitions.ts:

import MyEnumModule = …
Run Code Online (Sandbox Code Playgroud)

enums amd requirejs typescript visual-studio-2013

7
推荐指数
1
解决办法
6484
查看次数