the tswhy logo: a question mark in a box

tswhy‽

A community effort to enrich TypeScript diagnostics.

Editing TS1055:

All diagnostics and fixes are authored in markdown. Propose any changes by editing the markdown. Additional fixes can be added. A preview of the rendered diagnostic will update when changes are made.

Once all proposed changes are made, the Propose button will submit the information and confirm raising the PR.

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