[過去ログ] TypeScript part3 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
963(1): デフォルトの名無しさん [sage] 2021/12/30(木) 17:46:55 ID:18t9WvJQ(1/6) AAS
それはあなたがバリデーション書けないからでしょ?
968(1): デフォルトの名無しさん [sage] 2021/12/30(木) 19:33:44 ID:18t9WvJQ(2/6) AAS
>>967967(2): デフォルトの名無しさん [sage] 2021/12/30(木) 19:25:44 ID:zuTar3e4(2/7) AAS
言語仕様を変えるべきなんだろうな
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は消えるべき
いやそれはそのコードがバカじゃん……
971(1): デフォルトの名無しさん [sage] 2021/12/30(木) 19:44:03 ID:18t9WvJQ(3/6) AAS
>>966966(2): デフォルトの名無しさん [sage] 2021/12/30(木) 19:17:21 ID:zuTar3e4(1/7) AAS
>>963
型が嘘をつけることとバリデーションは別次元の話
>>964
明示的キャストなんかしなくてもTSにはいくらでも型が嘘をつく罠がある
代表的なところだとjsonのパース、DBのI/O、api I/O、野良ライブラリのI/O、、、
>>970なんの為のバリデーションとタイプガードだよ。
どこで間違った型が入りうるかなんか普通把握できるでしょうに
977(1): デフォルトの名無しさん [sage] 2021/12/30(木) 20:42:46 ID:18t9WvJQ(4/6) AAS
>>974974(1): デフォルトの名無しさん [sage] 2021/12/30(木) 19:59:03 ID:zuTar3e4(5/7) AAS
>>971
バリデーションってのは値が正しいかどうか検証するものであって型が嘘をついているかどうか調べるためのものじゃない
どこで型が嘘をついているか確実に判断することはむずかしい
自分達の管理するコードベースの外界とのI/Oは全て疑わしい
先も述べたようにJsonのパース、ApiのIO、DBのIO、野良ライブラリのIO
疑わしい箇所が多すぎる
型が嘘をつかない言語なら外界とのI/Oの型定義が信用できる
信用できない領域がグッと一気に減る
だから型は嘘をついちゃいけないし
簡単に嘘をつける言語仕様は絶対におかしい
型さえあってりゃどんなライブラリも安全安心だと思っているのか……
979: デフォルトの名無しさん [sage] 2021/12/30(木) 21:06:33 ID:18t9WvJQ(5/6) AAS
>>978978(1): デフォルトの名無しさん [sage] 2021/12/30(木) 20:51:38 ID:iK2C+Pgo(1) AAS
>>977
ちゃんと読めてます?
「信用できない領域がグッと減る」って書いてあるでしょ?
型安全であれば全てが安全なんてことはない
これは常識
でも型安全ならそうでない場合に比べて大部分が安全になる
これも常識
そしてTSは一見すると型安全であるかのように見えるけれど
型が簡単に嘘をつける言語仕様のせいで実は型安全ではなく安全でない言語である
これが私の主張
よく読んでね
お、これは失敬
988(1): デフォルトの名無しさん [sage] 2021/12/30(木) 21:42:03 ID:18t9WvJQ(6/6) AAS
そんなにTSが嫌いならずっとJavaなりC♯なり使ってれば良いじゃん
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.215s*