最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

javascript - How to type async function in TypeScript when its a void function - Stack Overflow

matteradmin8PV0评论

Here is my code:

async buildSomething(): any {
    const requestData = await request;
    requestData.forEach(i => this.table.push(i));
}

How I should type a void function, because it does something but It does not return anything.

In my case I used any but tslint shows me this:

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

How should I achieve this?

Here is my code:

async buildSomething(): any {
    const requestData = await request;
    requestData.forEach(i => this.table.push(i));
}

How I should type a void function, because it does something but It does not return anything.

In my case I used any but tslint shows me this:

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

How should I achieve this?

Share Improve this question asked Oct 28, 2020 at 14:22 Amos Isaila Lucian OnofreiAmos Isaila Lucian Onofrei 3263 silver badges17 bronze badges 3
  • is this unclear? why people put -1? dude, I just need some advice, thats all – Amos Isaila Lucian Onofrei Commented Oct 28, 2020 at 14:26
  • Have you tried typing it as void? – Heretic Monkey Commented Oct 28, 2020 at 14:28
  • yup, the same tslint message – Amos Isaila Lucian Onofrei Commented Oct 28, 2020 at 14:40
Add a ment  | 

2 Answers 2

Reset to default 4

All async functions return something: they return promises. So you don't want void, you want Promise<void>

async buildSomething(): Promise<void> {
    const requestData = await request;
    requestData.forEach(i => this.table.push(i));
}

The return type should be Promise<void>

Post a comment

comment list (0)

  1. No comments so far