我帮助维护一个生成间谍函数的JavaScript库,它允许您检查传入函数的调用方式(主要用于单元测试).
该库创建了一个函数,该函数具有其他属性,允许您检查调用.
是否可以创建一个TypeScript定义,允许将函数传递给需要函数且具有额外属性的方法?
这是无效的,但是类似于:
class Spy extends function {
wasCalled: () => boolean;
...
}
Run Code Online (Sandbox Code Playgroud)
这将允许我将间谍传递给具有此签名的函数:
function subjectUnderTest(callback:() => void) {
...
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*ens 34
是的,TypeScript手册将其称为"混合类型",因为它是功能类型和常规接口的组合.
interface Spy {
(foo: string, bar: number) : boolean; // Just an example
wasCalled() : boolean;
}
var spy : Spy = createASpySomehow();
var result = spy("foo", 123);
if (spy.wasCalled()) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9913 次 |
最近记录: |