misskey-dev / misskey

🌎 A completely free and open interplanetary microblogging platform 🚀
https://misskey-hub.net/
GNU Affero General Public License v3.0
9.95k stars 1.35k forks source link

`param: { foo: T['foo']; bar: T['bar']; }` を `Pick<T, 'foo' | 'bar'>`にしたい #14501

Open KisaragiEffective opened 1 month ago

KisaragiEffective commented 1 month ago

目が滑る。 例えばpartialUser: { id: MiUser['id'] }は頻出だがこれをpartialUser: Pick<MiUser, 'id'>と書けるとより意図が明確になる:

- partialUser: { id: MiUser['id'] }
+ partialUser: Pick<MiUser, 'id'>

{ id: MiUser['id']; host: MiUser['host']; } などのパターンでは更に明確になる:

- partialUser: { id: MiUser['id']; host: MiUser['host']; }
+ partialUser: Pick<MiUser, 'id' | 'host'>
anatawa12 commented 1 month ago

pickしたいとも限らない気もする。

idがuser idであるって明記したいってのも結構ある。

partialであることが明確ならそうでいいと思うけどidだけだとそうとも限らない気がする

KisaragiEffective commented 1 month ago

これを書いてから考えてたけど字句的にpickかどうかを判別するのが不可能なのはそうだし、1つか2つなら書き換えのコストの割にしょうもないなという気がしてきた

KisaragiEffective commented 1 month ago

(?:\s*(\w+):\s*\w+\['\1'\][,;]?){3} を 74c93fcebe1b6fde489470e19808389d13f07a05 で探すと15件ヒットしたので、そこだけ書き換えたいかも

tai-cha commented 1 month ago

より深いネストとかが生まれることもあるので結局pickできないものが出てくると混ざって読みにくいものも出てくるため機械的なコーディングルールのレベルでどうこうという話でもない気がする