TypeScript part4 (376レス)
上下前次1-新
抽出解除 レス栞
29(1): デフォルトの名無しさん [sage] 2022/02/06(日) 19:39:52.33 ID:7lkHt7VO(3/9) AAS
>>2727(1): デフォルトの名無しさん [sage] 2022/02/06(日) 19:28:15.98 ID:Fo3XpFx5(8/12) AAS
>>26
イミュータブルがイミュータブルなままなら問題ないって話しかしてないよ?
> 人間は間違える
そのためのTypeScriptのstructだよ?
structだけじゃ人間は間違えるし問題あるって話をしてる
structではデータ型が合ってるところまでしか保証できない
インスタンスが抱えてるデータが満たすべき条件を満たしていることを保証できるか?そこがポイント
それを保証するにはstructでは不十分で完全コンストラクタを実装したクラスが不可欠
48(1): デフォルトの名無しさん [sage] 2022/02/06(日) 22:57:06.33 ID:AuLf6V7C(5/7) AAS
>>4444(1): デフォルトの名無しさん [sage] 2022/02/06(日) 22:29:45.95 ID:7lkHt7VO(6/9) AAS
あらゆる形式に対応するためじゃない責務を明確に分けるため
仮に変更される可能性がなければ1つの関数でシステムを組むのか?そうはならんやろ
変更される予定がなくても責務は分けて作るんだよお仕事ではね
ProtobufはgRPC
バイナリで有名なのだと他にもMessage Packとか
こっちはゲームとかfluentdで有名
君はFizzBuzzのノリでエンタープライズ開発しそうだね
まあ君とは平行線のようだね。
> 仮に変更される可能性がなければ1つの関数でシステムを組むのか?
組むぞ。俺は変更される可能性がない所に依存するのは全く問題ないと見てる。
そして基本的に実行効率重視だから、無駄な事はしない。
君はドメインが「1年が365日である事を知っている必要はない」として、365すらもリテラルでは書かないのだろう。
そして人類が火星に到達した時、君のコードは無修正で動くが、俺のコードは役に立たない。
でも俺は、「一方ロシアは鉛筆を使った」は大切にすべきだと思ってるから、
365はリテラルで書いてしまって、火星に到達してから書き直す事を選択する。
俺はJSONが廃れる未来なんてないと思ってるから、コードがJSON形式に依存するのも何ら問題を感じないし、
今のJSのアーキテクチャ、つまりtoJSONを整備しろ、で全く問題ないと思ってる。
これは確かに分離出来てないアーキテクチャだけど、する意味もないと思うよ。
むしろ他言語でもJSON使えないのはポンコツ扱いだろ今は。
> gRPC
> Message Pack
> fluentd
JSONがあまり効率のいい形式ではないのは事実で、これに対する策のようだね。
ただ、俺ならI/O層でJSON形式から変換させる。
つまりドメイン層はtoJSONを定義して、それでおしまい。それ以上の形式が欲しければI/O層で変換だ。
君のアプローチより現実的だと思うけど。
102: デフォルトの名無しさん [sage] 2022/03/05(土) 08:26:19.33 ID:rV2+S9i4(1) AAS
売られたケンカは買ってこそ江戸っ子よ
155: デフォルトの名無しさん [sage] 2022/04/29(金) 05:07:46.33 ID:9Pfdk6R3(1) AAS
まあC++使えない奴は、大抵何させてもたいしたこと無いけどなw
167: デフォルトの名無しさん [sage] 2022/06/30(木) 07:51:24.33 ID:dQhuKSOV(1) AAS
>>165165(4): デフォルトの名無しさん [] 2022/06/29(水) 20:00:27.28 ID:NKfPTkof(1) AAS
質問です。
type t = (a: string) => string;
const f: t = (a) => false;
console.log(f('x'));
で false のところで、
Type 'boolean' is not assignable to type 'string'.ts(2322)
になりますが、
・type t = ... を書き換えてはいけない
・const f の実装を
const f: t = (a) => <string><unknown>false;
のように書き換えてはいけない
・// @ts-ignore
を使ってはいけない。
という縛りで、例えばですが、
type t = (a: string) => string;
overwrite type t = (a: string) => string | boolean;
const f: t = (a) => false;
console.log(f('x'));
のように同名の型のまま戻り値の定義を書き換えるということはできるのでしょうか?
(overwrite type...は、そんな文法は無く、仮想の方法です。)
また、型定義と型指定部分だけ書き換え不可としたら、普通は、
<string><unknown>false;
// @ts-ignore
どちらで乗り切るのでしょうか?
>のように同名の型のまま戻り値の定義を書き換えるということはできるのでしょうか?
型定義を後付けで変更できたらいろんな前提がひっくり返る気が
そんなことが必要な状況が想像できないけどコードの臭いがプンプンする
240(1): デフォルトの名無しさん [] 2023/01/04(水) 00:44:19.33 ID:B1scSs4x(1) AAS
JavaScriptは引数の数すらチェックされない上に暗黙の変換にundefined/null/NaNと昔はブロックスコープもなくてバグの温床てんこ盛りだったからやろ
intとかStringとかのベーシックな型を書きまくつてるコードを見ると欠陥言語だなと思う
292(1): デフォルトの名無しさん [sage] 2024/06/21(金) 21:41:16.33 ID:jcLAnU46(1) AAS
>>252252(1): デフォルトの名無しさん [sage] 2023/01/04(水) 18:22:26.69 ID:thANRos2(1) AAS
>そういうのはどのみち影響しそうな箇所を全部見て確認しなきゃいけないから、値に型があることはそれほど重要じゃないと思う
その影響しそうな箇所の把握に型があるのとないのでは大きく正確性や効率に差が出てくるでしょって話
イマイチピンとこない、参考までに教えてほしい
304: デフォルトの名無しさん [sage] 2025/03/13(木) 17:48:17.33 ID:019dloE9(1) AAS
公式の動画でバンって言ってる
335(1): デフォルトの名無しさん [] 2025/04/12(土) 20:23:17.33 ID:Mda8ZghK(1/2) AAS
>>334334(1): デフォルトの名無しさん [] 2025/04/12(土) 16:59:28.80 ID:g4WgMVTt(1/3) AAS
>>331
主流はまだJS/TS
フロントでWASMは個人的には微妙だと思う
特にRustはビルド遅いし、UIのサイズや見た目を調整するだけでも再ビルドが必要になるものはフロントと相性悪いと思う
UIはTypeScript、複雑なロジックだけRustやね
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s