the tswhy logo: a question mark in a box

tswhy‽

A community effort to enrich TypeScript diagnostics.

TS1055

Type '{0}' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value.

When targeting ES3 or ES5, async functions which try to declare a non-promise return type will throw this error:

class A {
  async method(): number {
    return 1;
  }
}

Fix: Use a promise return type.

Change the return type to be a promise:

class A {
  async method(): Promise<number> {
    return 1;
  }
}
Related: TS1064