Typings for function binding an action does not allow async
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 48/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 停滞
- 技術スタック
- typescript
調査の方向性
リンク先の Action 宣言がある index.d.ts を開いて ActionFn と比較し、続いて手動バインディングの例で使用されている store.action の型付けを追跡します。非同期の例が型チェックを通過しつつ、同期アクションも引き続き受け入れられるように宣言を更新し、プロジェクトで利用可能な型チェックを使って両方の戻り値形式を検証します。
索引モデルが issue の本文から書いたものです。
説明
When binding a function manually....
import createStore from 'unistore'
const store = createStore({ count: 0, stuff: [] })
const myAsyncAction = async (state, store) => {
await somethingAsync()
....
};
...and do the actual binding
const myBoundAsyncAction = store.action(myAsyncAction)
It will result in..
Promise returned in function argument where a void return was expected.eslint[@typescript-eslint/no-misused-promises](https://typescript-eslint.io/rules/no-misused-promises)
...because the typings does not allow for an async function.
A suggested fix would be to type Action the same way as ActionFn but with the addition of Promise<void> (which should also be added to ActionFn i guess). Ie:
export type Action<K> = (state: K, ...args: any[]) => Promise<Partial<K>> | Partial<K> | Promise<void> | void;
- 主要言語
- JavaScript
- スター
- 2.8k
- フォーク
- 134
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
developit/unistore のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 48/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
-
Errors with WMRオープン
難易度 3/5 1〜2日 初心者へのやさしさ 25/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 25/100
developit/unistore の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 2 日以内に返信
-
good first issue
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
saayam-for-all/webapp#1919 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
Uuriko/project-room#3728 ·
メンテナーはふだん 1 日以内に返信
-
factory-active task-identify-harness-labels-done task-identify-issue-type-done
難易度 1/5 1時間未満 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
devops-thiago/ThrillhouseBot#1132 ·
メンテナーはふだん 1 日以内に返信