[過去ログ]
TypeScript part3 (1002レス)
TypeScript part3 http://mevius.5ch.net/test/read.cgi/tech/1524746903/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
966: デフォルトの名無しさん [sage] 2021/12/30(木) 19:17:21.94 ID:zuTar3e4 >>963 型が嘘をつけることとバリデーションは別次元の話 >>964 明示的キャストなんかしなくてもTSにはいくらでも型が嘘をつく罠がある 代表的なところだとjsonのパース、DBのI/O、api I/O、野良ライブラリのI/O、、、 http://mevius.5ch.net/test/read.cgi/tech/1524746903/966
967: デフォルトの名無しさん [sage] 2021/12/30(木) 19:25:44.57 ID:zuTar3e4 言語仕様を変えるべきなんだろうな typeで宣言した変数への代入は実行時に型チェック付きのマッピングにトランスレートすべき ついでに言うとtypeで未定義の属性はマッピングするときにundefinedにすべき これだけでTypeScriptによくある馬鹿馬鹿しいバグがかなり減るはずだ type Foo { x: string; y: number; } const foo: Foo = { y: “s” } as any これはコンパイル時には無視していいが実行時にはエラーになるべきだし const foo2: Foo = { x: “a”, y: 100, z: “111” } これはzは消えるべき http://mevius.5ch.net/test/read.cgi/tech/1524746903/967
969: デフォルトの名無しさん [sage] 2021/12/30(木) 19:34:37.32 ID:zuTar3e4 Javaは最も優れた設計でそもそもanyみたいな言語仕様がない Objectは定義できるが暗黙のキャストでスルッと行くなんてことはあり得ないし無理やりキャストしたって実行時に必ず例外が飛ぶ C#はanyに近いものでdynamicというのがあるがこれも誤ったキャストには実行時に例外が飛ぶ どちらも型が嘘をつかないように言語基盤がしっかり担保してくれるから型を信用していい 当たり前のことを当たり前にやってくれる堅実な言語だ http://mevius.5ch.net/test/read.cgi/tech/1524746903/969
970: デフォルトの名無しさん [sage] 2021/12/30(木) 19:36:08.35 ID:zuTar3e4 >>968 このコードは説明のためのスニペットだ 現実的にこんなコード書くわけないだろ 現実的には先に挙げたような状況でanyと戦わなければならない http://mevius.5ch.net/test/read.cgi/tech/1524746903/970
974: デフォルトの名無しさん [sage] 2021/12/30(木) 19:59:03.54 ID:zuTar3e4 >>971 バリデーションってのは値が正しいかどうか検証するものであって型が嘘をついているかどうか調べるためのものじゃない どこで型が嘘をついているか確実に判断することはむずかしい 自分達の管理するコードベースの外界とのI/Oは全て疑わしい 先も述べたようにJsonのパース、ApiのIO、DBのIO、野良ライブラリのIO 疑わしい箇所が多すぎる 型が嘘をつかない言語なら外界とのI/Oの型定義が信用できる 信用できない領域がグッと一気に減る だから型は嘘をついちゃいけないし 簡単に嘘をつける言語仕様は絶対におかしい http://mevius.5ch.net/test/read.cgi/tech/1524746903/974
975: デフォルトの名無しさん [sage] 2021/12/30(木) 20:05:16.00 ID:zuTar3e4 >>972 構造的部分型もわかりにくいバグの温床だな anyよりは全然マシだが まあ楽なのは楽だよそれはわかる ただ楽なのと安全でりかいしやすいのとは同じじゃないからね typeは俺が言ったような真の意味で型安全を担保するための仕様 interfaceは構造的部分型でサボるための仕様 こう使い分ければよかったんだろうな http://mevius.5ch.net/test/read.cgi/tech/1524746903/975
976: デフォルトの名無しさん [sage] 2021/12/30(木) 20:09:20.24 ID:zuTar3e4 >>972 セールポイントであり最大の弱点でもある 思い切って互換性切った方が絶対上手くいってた >>973 まあ先発の古い言語だからある程度は仕方ないね Null安全は対応してきてる イミュータブルは昔から使えてた(final) http://mevius.5ch.net/test/read.cgi/tech/1524746903/976
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.038s