0
私のtypescript関数は以下の通りです。 2番目の関数は、vscodeの編集中にエラーメッセージを表示しませんでした。Typescriptコンパイルエラー:タイプ 'Item []'に 'void'型が割り当てられません
error TS2322: Type 'Promise<void>' is not assignable to type 'Promise<Item[]>'.
Type 'void' is not assignable to type 'Item[]'.
私は.catch(...)
を削除する場合:私はそれをコンパイルするときしかし、第二の機能は、エラーが表示されます。エラーは消えます。誰でも助けてくれますか?
// To retrieve a single item.
// Q is https://github.com/kriskowal/q
function getItem(id: number): Q.Promise<Item> {
const deferred = Q.defer<Item>();
// Async process.
return deferred.promise;
}
// To retrieve a batch of items.
function getItems(ids: number[]): Q.Promise<Item[]> {
return Q.all(ids.map(id => {
return getSingleItem(id);
})).then(results => {
let items = [];
results.forEach(result => {
items = items.concat(result);
});
return items;
}).catch(error => {
throw error;
});
}
'ids.map(id => {{}})の後ろに右括弧がありません。 – dbandstra
タイポを指摘していただきありがとうございます。 StackOverflowで変更しました。 – Michael
他者があなたの経験を再現できるように、 'Q'の宣言を追加すると便利かもしれません。約束の経験がなければ、どの実装を使用しているのかは不明です。 –