前提. $ $(yarn bin)/tsc --version Version 2.8.3 async を付けない場合,以下のコードはコンパイルが通る. function foo(): Promise<string> { return new Promise((resolve) => resolve('foo')); } async を付与すると上記コードはコンパイルが通らなくなる. // NG! async function foo(): Promise<string> { return new Promise((resolve) => resolve('foo')); } 以下のように,戻り値側にも型パラメータを付与するとコンパイルが通る. async function foo(): Promise<string> { return new Promise<string>((resol