type Foo = (...args: any) => any; export namespace Jester { export type Mock = jest.Mock, Parameters>; } export namespace Jester.Mock { export type Stub = { [K in keyof S]: S[K] extends Foo ? Jester.Mock : S[K] }; }