ember-test-waiters icon indicating copy to clipboard operation
ember-test-waiters copied to clipboard

Runloop compatible `waitFor` type

Open nwhittaker opened this issue 3 years ago • 0 comments

Is it feasible to provide a type for waitFor that is compatible with Ember's runloop functions?

Looking to do something like:

schedule('afterRender', waitFor(async () => { … }))

However this currently throws a type error:

Argument of type 'Function' is not assignable to parameter of type 'AnyFn'.
  Type 'Function' provides no match for the signature '(...args: any[]): unknown'. ts(2345)

Adding this function override appears to minimally be enough to clear up the issue:

export default function waitFor(fn: AsyncFunction<any[], any>, label?: string): (...args: any[]) => unknown;

A possibly more robust solution:

export default function waitFor(fn: AsyncFunction<unknown[], unknown>, label?: string): (...args: unknown[]) => unknown;

nwhittaker avatar Feb 17 '23 19:02 nwhittaker