suin
suin
いえいえ、むしろWebStormを知っていることが前提になっている構成にも問題があるので、課題に気づけてありがたいです!
## 課題 - ESLintの記事は基本的に上から進めていけばいい流れになっている - ところが、IDEとの統合の部分は、使っているIDEに応じて分岐する - これにより、WebStormを知らないVS Codeユーザーが混乱する場合がある ## 改善方法 - VS CodeとJetBrains IDEにリンクを貼る: リンク先: https://typescriptbook.jp/tutorials/setup#%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%83%BCide - 「VS Codeをお使いの方はこの手順を実施してください」「JetBrains IDEをお使いの方はこの手順を実施してください」などとひとこと添える
@apikmin JavaとJavaScriptでどちらもシャローコピーとディープコピーの指す内容に違いはないと思います。もし本書で、違いがあるように思えた箇所がありましたら、どの部分の文章なのかお教えいただければ幸いです😌
ありがとうございます!これを読む限り、JavaとJavaScriptでは指す内容が違ってきそうですね。 本書の誤りの可能性もあるので、調査してから結論をご回答したいと思います!
@apikmin 調査したところ次の結論が得られました。 - (少なくとも英語圏では) JavaとJavaScriptで「シャローコピー」と「ディープコピー」は同じようなものを指し、対応関係にある - ただし、日本語圏ではJavaの参照渡しが「シャローコピー」とする解説がウェブ・商業本問わず存在していて、Javaを使っている人の中にもJavaとJavaScriptで「シャローコピー」が異なるものを指し、対応関係にないと理解する人がいて、いびつな構造になっている 調査の詳細はこちらを御覧ください: https://zenn.dev/suin/scraps/27e2c2663d002e この結論と頂いたご指摘(下記)を踏まえると、 > 他の単元では他言語から来た人への注意書きがあり大変わかりやすかったので、もし上の認識が正しい場合、コピーに関しても注意書きがあるとわかりやすくなるかと思います。 「シャローコピー」と「ディープコピー」が指す内容が読者によって異なりそうなので、 - 本書で言う「シャローコピー」「ディープコピー」の定義を明確にする - Javaでは「シャローコピー」が指す内容が人によって異なる というところに触れたほうがいいのかもしれないと思いました😌 僕の考えは上記のとおりですが、Javaプログラマの読者として@apikmin さんのご意見があればお聞きしたいです!
@apikmin お考えが聞けて嬉しいです。 シャローコピー=参照渡しの誤解は、Javaに限らず他の言語でも見られることが判明しているので、Javaに限った問題ではなそうです。「Javaがおかしい」「他の言語がおかしい」といったニュアンスにならないように誤解に言及したほうがよさそうですね。上で出したアイディアのうち > Javaでは「シャローコピー」が指す内容が人によって異なる というふうな説明はやめようと思います。 ・・・・・ > 一方、質問にて安易に他書を引用したことにより、貴書の範囲外の内容でお手を煩わせてしまい、誠に申し訳ございませんでした。 これは僕がJava界隈の人からいろいろな意見をいただきたかったがための行動なので、お気になさらないでください🙇🏻♂️ むしろ、想定以上に反響があって @apikmin さんにご迷惑がかかってしまったのではないかと反省しております。。
## 「シャローコピー=参照の値渡し」と誤解した読者でも、疑問なくシャローコピーとディープコピーを理解できるように改善しませんか? ### 背景 - 読者の中には、「シャローコピー=参照の値渡し」と誤解している人がいて、サバイバルTypeScriptのシャローコピーの解説がアンジャッシュ状態になることがある ### アイディア - シャローコピーとディープコピーのページを作る - シャローコピーとディープコピーの概念を説明する - JavaScriptのシャローコピーのサンプルコードと同等の処理をする、JavaとPHPのシャローコピーのサンプルコードを書く - 言語を伏せた上で、シャローコピーに対する誤解が広まっている点に言及する
@version-1 「ほかの言語にある型とインタフェースと同じ使い分けをする」というのは具体的にどのような使い分けをイメージされているのでしょうか?例に挙げてくださったプログラミング言語Java、PHP、Goなどで型エイリアスとインターフェースがあり、それらの使い分けについて示したドキュメントもありましたら共有いただけると議論の材料になると思います。
@version-1 > ### 2. 同項目使いわけのルールを統一する際についての記述 > > インターフェースと型エイリアスの使い分けに悩む場面が多く開発スピードが落ちてしまうのであれば、型エイリアスに統一して書く方針にする考え方もあります。 > > 上記と関連しますが、 interface 側に倒す様なある中で型エイリアス側に倒す例を挙げているのが読んでいて腑に落ちない点がありました。本ドキュメントがある程度TypeScriptエントリーレベルの読者を想定しているのであれば、「型エイリアスがどうしても必要な場合(Union Type や primitve な型にエイリアスをつけたい場合など)をのぞいて interface を使うのが望ましい」という姿勢を勧めるのが優しい様な気がします。 これについてもう少し詳しく教えて頂きたいです! 1. なぜそのほうが初心者に優しいと思うのか? 2. もし下記を書き直すとしたら、どういう表現にしたいのか? > インターフェースと型エイリアスの使い分けに悩む場面が多く開発スピードが落ちてしまうのであれば、型エイリアスに統一して書く方針にする考え方もあります。
@monkey999por ご質問ありがとうございます😌 `-`はmapping modifierと言われるもので、 オプション修飾子 (optional property)`?`と組み合わせた`-?`は、`T`のオプショナルなプロパティをオプショナルじゃなくする効果があります。 `-`は「差し引く」の意味で、`?`は「オプション」の意味です。なので、2つ合わせて「オプションさを差し引く」ということになり、つまり「必須にする」という意味になります。 ## 関連文書 - [索引:記号とキーワード | TypeScript入門『サバイバルTypeScript』](https://typescriptbook.jp/symbols-and-keywords#--%E4%BF%AE%E9%A3%BE%E5%AD%90%E3%81%AE%E5%89%8A%E9%99%A4-ts) - [TypeScript: Documentation - Mapped Types](https://www.typescriptlang.org/docs/handbook/2/mapped-types.html#mapping-modifiers)