Closed kachick closed 2 years ago
https://github.com/mobu-of-the-world/mobu/pull/503/commits/ab02efb47eb19b283fd6c85dd9d455244e399701
そんな事は無さそうだったので勘違いだったっぽい。多分 普通の array を引数に受け取る様な型付けのところに as const かなんかで作った readonly array を渡せなかったのとかと勘違いしているのでは。 というケースを考えても、やはり副作用無いなら引数に readonly 明記したほうが使いやすそう。
https://github.com/kachick/wait-other-jobs/pull/86/commits/65e61ad012ef84908b676adcf70e8c9860cad2c8
ignoreInferredTypes
指定しないと callback 関数の引数にも強制してくる。これで今渡ってきているパラメータの値を Readonly で wrap する的な事がサクッとできればそれで良いのかもだけど、取り敢えずベタ書きすると Type のずれが発生したりするので嫌だから良い手段見つかるまではこのオプションつけて callback は無視したほうが良さそう
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/25dc5becf64ac808ba8a9c56e7d5c6741c3ee410/README.ja.md?plain=1#L278
DefinitelyTyped の README を読んでたら、引数に Array を受け取る時は、副作用無いんだったら ReadonlyArray にしろと合った。 なるほど良さそうと思うし typescript-eslint にも rule がすでに有るっぽいので適用していくのもまぁ出来そう。 https://github.com/typescript-eslint/typescript-eslint/issues/635 https://github.com/typescript-eslint/typescript-eslint/pull/654
でも前 mutable な Array が ReadonlyArray な場所に使えないこと合った気がするんだけどな・・・? という曖昧な記憶があるのでどっかで調べたい