我帮助维护一个 JavaScript 库,该库生成间谍函数,使您可以检查传入函数的调用方式(主要用于单元测试)。
该库创建了一个具有附加属性的函数,允许您检查调用。
是否可以创建一个 TypeScript 定义,允许将函数传递给需要函数并具有额外属性的方法?
这是无效的,但类似于:
class Spy extends function {
wasCalled: () => boolean;
...
}
这将允许我将间谍传递到具有以下签名的函数中:
function subjectUnderTest(callback:() => void) {
...
}
Yes, TypeScript 手册称之为“混合类型” http://www.typescriptlang.org/docs/handbook/interfaces.html#hybrid-types,因为它是函数类型和常规接口的组合。
interface Spy {
(foo: string, bar: number) : boolean; // Just an example
wasCalled() : boolean;
}
var spy : Spy = createASpySomehow();
var result = spy("foo", 123);
if (spy.wasCalled()) {
// ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)