TypeScript part4at TECH
TypeScript part4 - 暇つぶし2ch117:デフォルトの名無しさん
22/03/06 12:10:29.85 /i+Wlcs9.net
気に入らないなら新しいの作れって考え方
ウェブ系だと普通なのか?それってDIYっぽくない?
それに利用者からしたらぽんぽん新しいもの出されてトレンドが変わるのは迷惑でしかない
今あるものをより良くしていこうという考え方の方がいいと思うな

118:デフォルトの名無しさん
22/03/06 12:27:11.95 xougf8Rz.net
>>116
感覚だけでレッテル貼るんだ……

119:デフォルトの名無しさん
22/03/06 13:42:08.14 oGjlcJ2o.net
>>117
> ウェブ系だと普通なのか?
Web系ではなく資本主義/自由主義経済において普通。会社だって気に入らなければいくらでも起業しろ、でしょ。
Web系においてはこれが割と厳密に守られてて、Webサイトは自由に作れるし、起業する奴も多い。
(Webサイトも広告貼るならただの集客業《=ITチンドン屋》でしかない)
> 今あるものをより良くしていこうという考え方の方がいいと思うな
基本的にはこれは社会主義の思想。国で素晴らしい物を一つ作れば十分、という事だから。
ただしこれは現実的に出来ない。だから資本主義が社会主義を圧倒してる。
理由は簡単で、
・「素晴らしい」の定義が人によって全く異なる --- (A)
・そもそも何が「素晴らしい」のか、まだそれを見てない状態で想像出来る奴はほぼ居ない --- (B)
だからめいめいが「オレオレさいきょうの○○」を作りまくる資本主義の方が、社会主義より『結果的に』繁栄する。
ただしその時点で国としてのインフラ(教育/交通/電力等)が全く整って無い場合、
インフラの整備はほぼ全員の国民にとって「素晴らしい」事は明白なので、トップも実際にそれをやる。
だから社会主義/共産主義/独裁主義の方が国としてのスタードダッシュは速いし、歴史的にもそう。
ところがインフラを整えた位のところで、次に何をすべきかが分からなくなって失速する。
だから国としては独裁→自由主義にうまく衣替えするのが一番効率がいいのだが、
独裁してインフラ整備した連中はその時点で『大成功』してるつもりだから、その権力を絶対に離さない。
(実際はその独裁者の才覚によるものではなく、誰がやってもその状況なら大成功するわけだが)

120:デフォルトの名無しさん
22/03/06 13:42:30.55 oGjlcJ2o.net
で、Web上のコミュニティについては、
・ゆとりは基本的に許容範囲が無茶苦茶狭い。ちょっとでも不満があったらそれは駄目だと見なす
ので、上記(A)に引っかかって、結果的にコミュニティを上手く成立させられてない。(と見える)
(B)については確率の問題であり、ゆとりも母数は相当数居るのだから、問題ないはず。
現状、Webインフラは既に整備済みだから、「オレオレさいきょうの○○」を作る方が効率がいい。
仮に国有5ch、国有Twitterとして、それぞれ「この方針で行く」なんてやっても社会主義同様停滞するだけ。

そもそも何かしらの場があって、そこに居ついている人にとっては、そこが十分に「素晴らしい」場所なんだよ。
それを「俺がそう思うから」で変更するのは、元々居た人にとっては「素晴らしい」点が失われる事にもなりかねない。
これを防ぐために、並立させた状態で好きな方を選べ、がforkで、基本的にGitHub等もこの方針でしょ。
馬鹿ゆとりにも分かるように言えば、
・ゆとりにとっての快適は、上の世代にとっては不快
だから結果的にそれなりに住分けてる。この事実をちゃんと考えろ、という事。
いずれにしてもtwitter上のコミュニティなんて、勝手に宣言してるだけだし、
気に入らなければ自分で作って競争すればいいだけだろ。
ただ、>>100程度の馬鹿ではこれは出来ないと思うけど、という話。

>>118
100は典型的ゆとり価値観だぞ。
ここは匿名なのだから、自分が何者かは自分の書き込みで示さなければならない。
ゆとりらしい書き込みをしたからゆとり呼ばわりしてるだけ。
これが悪いとは俺は1mmも思わない。
(そうされたくなければそういう書き込みをしなければいいだけ)

121:デフォルトの名無しさん
22/03/06 15:28:00.88 pk8t6Esu.net
>>120
お前ここ初めてか?力抜けよ。

122:デフォルトの名無しさん
22/03/06 15:42:42.98 oGjlcJ2o.net
>>107
>>121
ゆとりを56してしまえば笑顔になれるよ

123:デフォルトの名無しさん
22/03/07 07:16:36.13 QGQBtQzw.net
こんなやつが暴れてる5chではコミュニティが育つわけもないよなぁ

124:デフォルトの名無しさん
22/03/07 07:34:46.32 SPifR21t.net
ぼくのかんがえたさいきょうのこみにゅてぃ以外みとめません!

125:デフォルトの名無しさん
22/03/07 13:09:46.84 89t8mali.net
>>123
なら出ていけばいいだけだね。それでこちらも助かる。
俺はゆとりが全員死ぬのを望んでいる。

というかね、ゆとりは相変わらず『俺様が絶対正義』だと思っているようだが、
そもそも「価値観の違いによるストレス」は相互であり、相手も(符号が違うだけで)全く同じストレスを受けてる。
自分達が一方的に被害者だってことにはならない。お互いに被害者であり加害者だ。
(つかなんでお前らが被害者ポジションマウントを気取るのかさっぱり分からないが、
ネット見過ぎてゴミクズ韓国人がデタラメ言ってるのを真に受けて戦法を学んだつもりなのか?
まあひろゆきが議論上手に見えるようだから実際その程度の頭なのかもしれんが)

126:デフォルトの名無しさん
22/03/07 13:10:25.20 89t8mali.net
この辺、ちょっと考えればすぐ分かるはずなのに、ゆとりは全く考えようともしないから気づけない。
馬鹿ゆとりにも分かるようにくどいが言い直すと、
ゆとりが「上から目線ガー」と感じてるのなら、
ゆとり以前の世代は「なんで下の者にこんな言われようされないといけないんだ?」と思ってる。
上司は友達でも同僚でもない。
勘違いしている奴も中にはいるが、大半は職責を正しく全うしてる。
そこで「もっとフレンドリーにやった方がいい」というのなら「提案」になるが、
当たり前だが「上司と部下」で既に上手く回ってる組織でそれをやっても嫌われる。無茶言うなでしかないからだ。
だから「フレンドリーな会社を作って、そっちの方が上手く回る(=利益が出る)ことを示し、
優勝劣敗の原理により『上司と部下』の会社を廃業に追い込む」というのが正しい自由主義経済での解決法だ。
くどいが、元々成立していた会社を「ぼくのさいきょうのかいしゃ」に変更する事ではないんだよ。
なんでこんな事になってるかというと、そもそも「ぼくのさいきょうのかいしゃ」は実際ただの勘違いが多く、
大半の場合はろくでもない結果にしかならないからだ。
ただ、中には上手く行く事もあるし、そういうのはえてして当初は「無茶だ」としか思えないから、
そういう成長の芽を潰さないために「ぼくのさいきょうの○○」を作る自由は保障されてる。
これが自由主義経済。
ゆとりは昔から「同僚や先輩にお願いするべき事項を、上司に振る?!?!」と言われているが、ここは相変わらずだろ。
ゆとりの「上から目線ガー」はゆとり以前の「何故俺がこんな…」の裏返しでしかない。
お前らがストレスを感じるのであれば、お前らも十分ストレスの原因になってる。
だから棲み分けが妥当なんだよ。

127:デフォルトの名無しさん
22/03/07 13:11:19.93 89t8mali.net
さて本題100、実際そいつがどれ程かは知らんが、俺から見れば普通なんだろうなとは思う。
でもそれが平均的ゆとりにとって看過出来ないストレスで無理なら、
同様に無理だと思ってるゆとりも大勢居るはずだから、そいつらと共にもっと「優しいコミュニティ」を立ち上げればいいだけ。
そしてそれで上手く行けば、他コミュニティも学んで優しくなるところも出てくる。これが自由主義経済。
こうなればゆとり価値観の勝ちでいい。
ただまあ、一般的にWebコミュニティは優しいだけでは上手く回らない。
塩対応には必ず理由があって、お前らは「人格ガー」って事にしたいのだろうけど、大半はそうではない。
まあその辺はやれば分かるし、やらないと分からないので、やってみればいい。
それで上手く行けばよりよい物を得られ、全体に利益がある。駄目でも損失はない。これがforkの良いところだ。
(forkの場合はそのままの現行と一部改造した新規の構成のため、失敗しても現行は無傷で、プラス方向にしか進化しない。
現行を直接変更する「改善」だと、「改悪」される事もあり、マイナス方向に進む場合もある。
つまり、自由主義経済は進化の方向がデタラメで速度も遅いが、プラス方向にしか進化しないため、長期的にはなんだかんだで成長する。
対して社会主義だとスタートダッシュは速いが、「改善」の難易度も段々高くなるため、
ある程度以降は改善改悪を繰り返し、長期的には停滞してしまう。
これが社会主義が資本主義に負けた根本的な理由。
だから俺達はやっぱり自由主義的にforkで行くしかないんだよ。
『自分が大正義だ』と思ってる限りforkなんて効率が悪すぎると思えるだろうが、それは傲慢でしかない。
正しかったかどうかは結果《=多数の支持》で判断されるべきであって、お前の思想に合致してるかどうかではないから。
《というかパヨクが根本的にずれてるのはここで、『俺様が絶対正義』だと自信持ちすぎてるからあんなことになる。
そしてゆとりにもこの傾向はあるよ。これは自覚した方がいい》)

128:デフォルトの名無しさん
22/03/07 13:12:24.61 89t8mali.net
5chでtwitterの悪口を言っても何ら生産性がない。
文句があるのならまずはやってみる事だ。お前もコミュニティ立ち上げ宣言してみればいい。
それで上手く行けばよし、駄目なら駄目で、何故塩対応してたのかが分かるだろうさ。
だからいずれにしても君には利益があると思うけど。

あとついでに聞きたいんだが、なぜゆとりは5chに拘るのだ?
5chなんてゆとり以前の世代「ゆとりにはついていけねえ…」の巣窟だ。
ゆとり以前からあるんだから当然だが。
いずれにしても、ゆとりにとって快適な場所にはならないよ。
(5chの連中を見下したり馬鹿にしたりするのも自由だけど、それを5chに来て言うのは頭がいかれてる。
まあそれ以前に、twitterの悪口を5chで言うのも頭がいかれてるが)
既に言ったがQiitaがゆとり価値観の場所で、
「Qiitaに掲示板機能付けてくれ」が「5chを使う」よりお前ら的には正しい解のはずだ。
もちろんQiitaはそれが出来ないと分かってるからやってないのだが、
それでも「ゆとり価値観の掲示板」を何処かに作らない事には、お前らの安寧の地はないと思うけど。

129:デフォルトの名無しさん
22/03/07 22:53:54.14 SPifR21t.net
TypeScriptもついに4.6か
翻ってウチのNuxtプロジェクトときたら未だに4.2にロックイン
Nuxt 3になれば何とかなると待って信者が祈りを捧げて早幾年
未だβのまま
そもそもbreaking changeに耐えられる品質でもない
この型無し糞ゴミ採用した奴●してやりてえわ
そもそもVueコミッター全員●したい
早く潰れろ

130:デフォルトの名無しさん
22/03/07 23:53:20.52 ZqaLalev.net
.NETやってるけど快適

131:デフォルトの名無しさん
22/03/08 05:55:37.35 p1ggB6/9.net
つまり言語作者が同じTSも快適って事か

132:デフォルトの名無しさん
22/03/08 08:51:42.58 W/y0kE8O.net
jsファミリーに期待するな

133:デフォルトの名無しさん
22/03/08 12:40:02.06 o9qP1ELk.net
やはりRustのみが縁なき衆生をお救いくださるのである(過激派

134:デフォルトの名無しさん
22/03/18 11:45:07.12 hnZ3lDzs.net
node_modulesの下のコードが静的エラー出して鬱陶しいです
typescriptの開発者って静的エラー消さずにパッケージ出荷しちゃうんですか?

135:デフォルトの名無しさん
22/03/18 11:57:30.55 0waQ0EIw.net
excludeしろ

136:デフォルトの名無しさん
22/03/27 17:58:36.93 LHErTm2E.net
TSはもしかして例外あんまり使わないんですか?

137:デフォルトの名無しさん
22/03/30 14:38:24.60 rdfA8RBv.net
みなさんどういう単位でファイル分割されてますか?
1ファイル1クラスのphpと違って自由だから逆に迷ってしまいます
ベストプラクティスないかググっても見つからず…

138:デフォルトの名無しさん
22/03/30 14:47:13.20 /h0/v+Yd.net
どうでもいいので好きにすればいい
そもそもスクリプト言語ではそんなガチガチにこだわらないほうがいい
スクリプトは雑で汚くてもいいから小さいシステムをサクッと作るための道具だから

139:デフォルトの名無しさん
22/03/30 15:27:58.67 w/wOADHo.net
>>137
教科書的な正解が欲しいならGitHubでTypeScriptコンパイラかVSCodeのソースを見ればいい
機械的な基準ではなく、意味のある単位で適当に分けていることがわかる
身も蓋もないことを言えば、十分に頭の良い人間の裁量でケースバイケースで判断するのがベストだ

140:デフォルトの名無しさん
22/03/30 15:33:36.80 iu76Nwkv.net
>>137
普通にクラス単位で分けるし、型(関心事)とその周辺関数郡で分割するかな。あとは1ファイルをなるべく小さく保つ。改修で膨らむ可能性があるから。
個人的には1ファイル250行超えたら危機感持つ。

141:デフォルトの名無しさん
22/04/18 21:22:21.94 rznbXz+G.net
>>137
なるべくファイル数は少なく保つ
微塵切りの千切りファイルで見通しを悪くしてはいけない
classは使わない
十分に小さく参照等価なfunctionを組み合わせる
どうせ改修で膨らむほど使われないから。
個人的には1ファイル250行未満なら危機感持つ。

142:デフォルトの名無しさん
22/04/22 12:41:47.72 egxvakGA.net
初心者です
serverlessってフレームワークを使ってるんだけど、規模小さいコードなのにビルド始めるとesbuildが16Gメモリ使って完了までくっそ時間かかる
業務用のソースだから晒せないんだけど、一般論的に言ってこの最適化オプションはハマりやすいので注意、みたいなのってあります?

143:デフォルトの名無しさん
22/04/22 15:45:27.64 rFOQ0LJz.net
ここよりフロントエンドのフレームワークのスレで聞いたほうが良いと思うな

144:デフォルトの名無しさん
22/04/26 21:25:48.15 1qeD7Yad.net
JSファミリーの仕様のごちゃごちゃ加減が酷い
なんでこれが流行ったんだ

145:デフォルトの名無しさん
22/04/26 21:27:37.78 1qeD7Yad.net
他の言語が取って変わろうとするたびに、
javascript側の仕様更新による延命がうまくいったせいで、
ごちゃごちゃな歴史を引きずったまま、いまでもゾンビのように君臨してるパターンか
フロントのフレームワーク、JS一択なのが酷い

146:デフォルトの名無しさん
22/04/26 21:37:42.76 QNVEk81Z.net
ブラウザがまともにサポートしてるのがそれだけだったから仕方がない
もし最初に軌道に乗ったブラウザスクリプトがVBだったら今頃VBが流行ってたよ

147:デフォルトの名無しさん
22/04/26 22:16:40.32 /B/eiBVl.net
ありえんわ
勘違いもはなばなしい
なんだかんだ(古い文法を除けば)JS/TSの文法はプログラミング正統派として読みやすい
だから未だに使われ続けている

148:デフォルトの名無しさん
22/04/26 22:16:58.75 QNVEk81Z.net
と思いたいんだね

149:デフォルトの名無しさん
22/04/26 22:23:32.66 DyWQhYeY.net
実に華々しい勘違いですね

150:デフォルトの名無しさん
22/04/27 09:19:38.83 +qhhkVcT.net
いや、鼻々しい勘違いでいた

151:デフォルトの名無しさん
22/04/27 09:21:46.08 +qhhkVcT.net
でも、TS様のおかげでJSの酷さがかなり軽減されていると思る
勿論、TSスレだから媚びを売ってるだけだ

152:デフォルトの名無しさん
22/04/27 20:19:12.60 WzmT7FsB.net
interfaceのほうがコードきれいになるな
typeは便利だが良くない発明だ

153:デフォルトの名無しさん
22/04/28 21:43:14.60 oBwwA7sc.net
interfaceできれいになるような糞コード書いてるのが問題なのでわ?

154:デフォルトの名無しさん
22/04/28 21:53:14.86 kbziWRDf.net
クソコードって|とか&使ってる馬鹿なコード
unionって今どきC言語かよ

155:デフォルトの名無しさん
22/04/29 05:07:46.33 9Pfdk6R3.net
まあC++使えない奴は、大抵何させてもたいしたこと無いけどなw

156:デフォルトの名無しさん
22/04/29 05:15:00.80 bza0ag8S.net
う、うん…(´・ω・`)

157:デフォルトの名無しさん
22/04/29 05:37:28.64 a7FB1YkL.net
ヨシ!

158:デフォルトの名無しさん
22/04/29 05:57:49.75 fa9VGnxG.net
このスレやべーやつ住んでるな。ワッチョイつけなかったからこんなもんか

159:デフォルトの名無しさん
22/04/29 08:07:44.25 nnpkzAOE.net
次世代言語スレから何か流れてきてるだろ

160:デフォルトの名無しさん
22/04/30 02:13:26.17 u1byxZ8b.net
C++を使うにはCの知識も当然必要だがな

161:デフォルトの名無しさん
22/04/30 11:22:16.98 Jfyr/cmt.net
オーバーロードがもうちょいマシだったらなと思う

162:デフォルトの名無しさん
22/05/10 11:41:45.53 fIyMb/gO.net
     ,―彡 ⌒ ミ―、
    〈 〈| ´ん` |〉 〉
    \ ヽ _ / /
     /      /みんなで
     /      /ホモセックス

163:デフォルトの名無しさん
22/05/30 21:44:48.53 URC3D+jY.net
バカが書いたTypeScriptってマジで糞だな
って思ったけどJavaScriptだったらもっと糞になってたんだよなって思って心の平静保ってる

164:デフォルトの名無しさん
22/05/30 21:47:51.98 arvcbcVn.net
それ言ったら賢い奴が書いたらCでも何も問題ないんだが
言語が縛ってるのは所詮馬鹿対策でしかない

165:デフォルトの名無しさん
22/06/29 20:00:27.28 NKfPTkof.net
質問です。
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
どちらで乗り切るのでしょうか?

166:デフォルトの名無しさん
22/06/30 01:29:29.02 9mtgPMTA.net
>>165
普通はfの型をtにしないと思うのだが、どういう意図があるの?

167:デフォルトの名無しさん
22/06/30 07:51:24.33 dQhuKSOV.net
>>165
>のように同名の型のまま戻り値の定義を書き換えるということはできるのでしょうか?
型定義を後付けで変更できたらいろんな前提がひっくり返る気が
そんなことが必要な状況が想像できないけどコードの臭いがプンプンする

168:デフォルトの名無しさん
22/06/30 09:29:37.43 Rcw/gVlt.net
ライブラリの型が間違ってるとか?
質問あるあるだが、抽象化も大事だが、具体的な状況も書き添えると回答してもらいやすくなると思うよ
そもそもの質問がずれてるとかもあるからね

169:デフォルトの名無しさん
22/06/30 11:29:36.59 Argu0lpR.net
>>165
です。ありがとうございます。
実際のケースでお話しします。
・ライブラリの型を利用している。
・ライブラリの実装をそのまま真似ている。(実装は変えられる。)
・anyは使わない方針。
の状況です。
【型定義(サードパーティ)】
declare const visit: { <V extends Node>(tree: Node,test: Test<V> | Array<Test<any>>,visitor: visit.Visitor<V>,reverse?: boolean): void }
export = visit
declare namespace unistUtilIs {
type TestFunction<T extends Node> = (node: unknown,index?: number,parent?: Parent) => node is T
type Test<T extends Node> = TestFunction<T> | null | undefined }
【実装(大部分省略)】
import visit from 'unist-util-visit';
import { Node, Data } from 'unist';
 function visitX(node: any): void {
  if (!node.type) return;
 }
 return function transformer(tree): void {
  visit(tree, (node: Node<Data>) => node.type === 'xxx', visitX);
 };
ここで、function visitX(node: any) の Unexpected any. を消すのに難儀しています。
function visitX(node: Node<Data>): void {
にすると、
visit( の部分で
No overload matches this call.
Overload 1 of 2, '(tree: Node<Data>, test: any[] | Test<Node<Data>>, visitor: Visitor<Node<Data>>, reverse?: boolean | undefined): void', gave the following error.
...
と怒られます。極端な話、サードパーティの定義の方をいじらないと解決しないかもと思った次第です。

170:デフォルトの名無しさん
22/06/30 12:31:53.04 Rcw/gVlt.net
5chだと読みづらいからts playgroundなりcode sandboxなりに書いて欲しい

171:デフォルトの名無しさん
22/06/30 12:53:38 Argu0lpR.net
>>165 です。
すみません。かなり省略して、改行も削除しました。
伝えたかったのは、以下です。
URLリンク(tsplay.dev)

172:デフォルトの名無しさん
22/08/26 00:55:54.58 z3bi9+6P.net
Recordとmapped typesの使い分け方が分かりません
Record<Key, Value>と{ [key: Key]: Value }ってinterchangeableな気がするんですが、
どっちかにしかできないことがあったりするんですか?

173:デフォルトの名無しさん
22/08/26 08:07:49.83 cPJ/q77Z.net
mapped の方が柔軟
type X = { age: number, name: string }
これは Record では定義できないだろう

174:デフォルトの名無しさん
[ここ壊れてます] .net
Recordはキーがいくつかの既知の値のみに限られる場合に使う
{ [key: Key]: Value }だとキーが何でも入っちゃうでしょ

175:174
22/08/26 10:07:43.28 yW+yR6PJ.net
限られるというより、必ず既知のキーを持っていることが保証されるというべきか
record.knownKey のような既知のキーによるアクセスがタイプセーフになり、コード補完も効く

176:デフォルトの名無しさん
22/08/26 10:18:44.77 XmC41P2C.net
微妙にインデックス型とmapped typeがごっちゃになってて話をややこしくしてる気がする

177:デフォルトの名無しさん
22/08/26 22:54:52.76 wGXHgoK/.net
>>173
それはただのオブジェクト型だと思うが

178:.NET MAUI HighScool
22/11/03 11:06:25.02 P57hKE9o.net
もしかしてTypeScriptってC#で良いのでは?
静的型付け言語だしオブジェクト指向だし作った人も一緒

179:デフォルトの名無しさん
22/11/03 11:18:14.22 /OhXuECX.net
C#でいいならわざわざ同じ人が新言語作らないだろ
ヘルスバーグはMS内では神みたいな扱いらしいから、自分で意味ないと思ってる仕事なんかやらないよ

180:デフォルトの名無しさん
22/11/03 11:27:45.04 BN1z7WMM.net
TypeScriptが解決してる問題をC#が全て解決出来るか考えてみれば?

181:.NET MAUI HighScool
22/11/03 11:38:56.77 P57hKE9o.net
>>180
できてるじゃん

182:デフォルトの名無しさん
22/11/03 12:08:35.27 S9tMl46F.net
or型というのかunion型というのか忘れたけど、C#にはなくない?
type a = b | c
(C#にもこの機能欲しい)

183:デフォルトの名無しさん
22/11/03 12:23:54.28 d31vVPfb.net
JavaScriptに静的型付けの恩恵を与えるために作られたのがTypeScript
C#でそれは出来ないでしょ

184:.NET MAUI HighScool
22/11/03 12:26:39.11 Kj7ywx2W.net
>>183
C#が静的型付けじゃん

185:デフォルトの名無しさん
22/11/03 12:29:42.91 d31vVPfb.net
C#ではJavaScriptに静的型付けの恩恵を与えられないでしょ

186:.NET MAUI HighScool
22/11/03 12:39:42.87 Kj7ywx2W.net
>>185
なんで?

187:デフォルトの名無しさん
22/11/03 12:47:16.05 d31vVPfb.net
>>186
君はC#がJavaScriptに静的型付けの恩恵を与えられると思ってるの?

188:デフォルトの名無しさん
22/11/03 12:57:24.44 t+iDkaHi.net
>>182
これについてはTypeScriptが便利というよりは、JSのやり方に合わせるために必要となっているものだと思う
C#では型が条件によってコロコロ変わるような設計は普通しないから、nullabilityさえ指定できれば多くの場合十分

189:.NET MAUI HighScool
22/11/03 13:04:33.62 fiCeisHS.net
>>187
いや別にJavaScript使う必要なくね?

190:デフォルトの名無しさん
22/11/03 13:12:15.66 d31vVPfb.net
>>189
それは論点のすり替えでしょ

191:デフォルトの名無しさん
22/11/03 14:21:47.63 M3w0A0V3.net
代数的データ型は静的型付け言語にもあるよ。
最近のC#でも出来るけど記述量が多い。F#なら比較的楽に書けるけど。

192:デフォルトの名無しさん
22/11/03 15:50:32.38 BAhN8xRm.net
typescriptが実行時型安全まで保証してくれたらもう他の言語いらんのよな
REST APIというかJSONとの相性もマックスバリューだし
世にはびこっている型なし糞言語を全て地獄に葬り去ってほしい

193:デフォルトの名無しさん
22/11/03 16:11:11.85 cSIPlVD9.net
>>191
union typesは静的型において一般的な直和型とはかなり違ってて癖が強い
値が型持ってないからね

194:デフォルトの名無しさん
22/11/03 16:27:43.63 M3w0A0V3.net
>>193
まあそれはそうか。型ガードベースだもんね。
別に型が一致してなかったとしてもメンバさえ合ってれば雑代入しても問題ないし。

195:デフォルトの名無しさん
22/11/03 18:23:11.89 zVDUtzQU.net
>>192
型をバリデーションライブラリから生成すると捗るよ

196:デフォルトの名無しさん
22/11/03 20:49:50.25 BAhN8xRm.net
>>195
おっ zodmanか?

197:デフォルトの名無しさん
22/11/03 20:56:17.04 tn2ZhR3p.net
interface/classからjsonschemaを生成して、それを型ガード関数で使うってのが鉄板。

198:デフォルトの名無しさん
22/11/03 21:05:34.21 zVDUtzQU.net
>>196
すまねぇsuperstructなんだ。すまねぇ。
>>197
AJVはコードサイズデカくね?

199:デフォルトの名無しさん
22/11/03 21:36:19.22 tn2ZhR3p.net
コードサイズは気にしたことがないがスキーマ手書きは面倒臭いからやだなあ。

200:デフォルトの名無しさん
22/11/03 22:05:24.52 S9tMl46F.net
RestAPIの型チェックはio-tsっていうライブラリつかってバリデーションしてるな。
実行時コストがあるけど、自分は業務アプリがメインなんで変な結果で次に進まない方が大事。

201:デフォルトの名無しさん
22/11/03 22:38:04.12 zVDUtzQU.net
>>199
ZodとかSuperstructとかはtypeで型書くのとほぼ同じくらいの手間でバリデーションと型が生成されるからすげー楽だよ。

202:デフォルトの名無しさん
22/11/03 22:52:51.54 tn2ZhR3p.net
うーん、俺はやっぱりTypescriptで書いた型そのまま使える方が楽だわ。

203:デフォルトの名無しさん
22/11/04 15:37:16.21 NHN4pq/h.net
HighScool君は納得して帰ったのか

204:デフォルトの名無しさん
22/11/04 23:24:08.39 /YFZG+0u.net
superstruct と zod ならどっちがええのんか?

205:.NET MAUI HighSchool
22/12/16 16:55:41.78 3qj0lL1U.net
C#だとvar型でも何ら問題無いと思われてるのにTypeScriptのanyはなんでTwitterでネタにされるんでしょうか?
私もあまりvar型使いませんが公式とかvar型使いまくってるしTypeScriptでany使っても何ら問題なさそうなのですが…

206:デフォルトの名無しさん
22/12/16 17:30:57.27 p0Ky0qXF.net
コーディング時にvarは右辺で型が決まるけどanyは決まらないからかな

207:.NET MAUI HighSchool
22/12/16 18:26:46.45 3qj0lL1U.net
>>206
決まらないんですか?
ではvar型ではなくdynamic型と言うことなのですかね

208:デフォルトの名無しさん
22/12/16 21:33:55.14 AqSpfMIV.net
そもそもvarは正確には型じゃないだろ

209:デフォルトの名無しさん
22/12/16 21:58:06.83 V2l7/OO4.net
var型はないな
型の堅牢性などを享受するためにTypeScriptを使用しているはずなのに、anyを持ち出せばそれが途端に失われるから絶対に使わない方がいい
そして確かにanyはdynamicに近いものと考えて良い

210:デフォルトの名無しさん
22/12/16 22:10:24.90 Hm0gKYO4.net
TypeScriptに対する理解が浅いのはともかくC#の理解もそんな程度だったのかこのコテ

211:.NET MAUI HighSchool
22/12/17 00:18:30.36 WFRGIGZB.net
>>208
型推論型だろ
>>210
何いってんだこいつ?

212:.NET MAUI HighSchool
22/12/17 00:22:25.11 WFRGIGZB.net
dynamic型は次の値を入れたらその型に変わる
例えば
dynamic x="おはよう"
dynamic x=123
でも大丈夫なわけ
anyは型の再代入ができないって見たけど?これdynamic型なの?

213:デフォルトの名無しさん
22/12/17 00:38:58.67 1fKT+2Wj.net
>>178程度の理解のヤツに何を説明しても無駄よ

214:デフォルトの名無しさん
22/12/17 00:50:14.95 /cYfBcZ5.net
>>212
流石にこれは触っちゃいけないレベル

215:デフォルトの名無しさん
22/12/17 00:55:05.65 Q7rx/k0e.net
anyはまさにJavaScriptの元々の変数の扱い様そのもの。

216:.NET MAUI HighSchool
22/12/17 01:46:39.51 WFRGIGZB.net
>>213
TypeScriptはC#以下だったってわけか
理解

217:デフォルトの名無しさん
22/12/17 01:54:57.82 Q7rx/k0e.net
目的が違うんだよ。C#ではTypeScriptのようなことは出来ない。
良い意味でも悪い意味でもJavaScriptのスーパーセットかつトランスパイラである必要があるんだから。
ただTypeScriptが将来C#でやってることを概ね肩代わりすることは可能だったりはするんだけどね.netライブラリをそのまま動かすように改変していくことも障害は少ない。

218:デフォルトの名無しさん
22/12/17 02:13:01.40 dtBkzR03.net
そいつにかまうなよ
あちこちの言語やフレームワークスレに乗り込んでは意味不明な喧嘩売って
C#マンセーMAUIマンセーしてるだけの荒らし

219:デフォルトの名無しさん
22/12/17 03:00:17.54 7f5jCiop.net
再代入と型は関係ないだろ
見た感じC#も満足に使えてないじゃん

220:.NET MAUI HighSchool
22/12/17 04:20:14.04 WFRGIGZB.net
>>219
どこが?
dynamic型知ってる?

221:デフォルトの名無しさん
22/12/17 08:49:17.76 J7I3yK2m.net
>>211
まぁ初心者なら便宜的に型だって覚えときゃいいよ
>>212
型の再代入って何?
値の再代入とは違うの?

222:.NET MAUI HighSchool
22/12/17 11:38:05.95 WFRGIGZB.net
>>221
値は型があってたら普通は再代入はできる
ただ型があってなかったらできない
dynamic型は型があってなくても再代入できる

223:デフォルトの名無しさん
22/12/17 12:01:06.61 d07Wp+U/.net
>>222
それをC#では型の再代入って呼ぶの?
TypeScriptでは変数をletで宣言すれば値を再代入できる
変数がany型ならどんな型の値でも代入できる
変数をconstで宣言すれば型が同じであろうと再代入できない
>>219の言ってるのはそういうこと

224:.NET MAUI HighSchool
22/12/17 12:25:09.54 EKmrQGNL.net
>>223
そういう決まった名前無いけどdynamic型は型を変えれるからそう言ってる

225:.NET MAUI HighSchool
22/12/17 12:25:55.57 EKmrQGNL.net
つまりletがvarでanyがdynamicってことか

226:デフォルトの名無しさん
22/12/17 12:32:09.45 AZCBrKeq.net
ここでもバカ晒してるのかよw

227:.NET MAUI HighSchool
22/12/17 12:38:11.73 WFRGIGZB.net
>>226
何いってんだこいつ?

228:デフォルトの名無しさん
22/12/17 12:56:35.19 d07Wp+U/.net
>>225
説明の仕方が悪かったか
C#の
dynamic x = "abc";
x = 123; //OK
に相当するのは
let x:any = "abc";
x = 123; //OK
var y = "abc";
y = "def"; //OK
y = 123; //NG
に相当するのは
let y = "abc"
y = "def"; //OK
y = 123; //NG
変数の型を推論に任せるときは型指定を省略する

229:.NET MAUI HighSchool
22/12/17 14:07:48.19 WFRGIGZB.net
>>228
なるほど理解したサンクス

230:デフォルトの名無しさん
22/12/17 18:19:24.77 EAGB3+7T.net
なんでぽまいらはC#の話をしているんだ?

231:.NET MAUI HighSchool
22/12/17 18:58:14.82 WFRGIGZB.net
anyはネタにされるけどvarはネタにされないなと思ってさ
まぁ勘違いだったんだけどね

232:デフォルトの名無しさん
22/12/17 19:14:45.81 ETb1szGB.net
なぜanyがネタにされたり忌み嫌われたりするのかはその機能だけ見ても分からんだろうね
言語特有の背景を理解してこそ
URLリンク(qiita.com)

233:デフォルトの名無しさん
22/12/17 20:38:09.95 /cYfBcZ5.net
any無しはJSONの扱いが面倒臭過ぎるんだよなあ
必要に応じて型のランタイムチェックを入れてキャストできる機能さえあれば格段に便利になるんだが

234:デフォルトの名無しさん
22/12/17 20:55:50.21 AZCBrKeq.net
ユーザー定義型ガードで足りると思うが

235:デフォルトの名無しさん
22/12/21 14:23:05.41 FWjNfdlT.net
JSONだろうがanyを許すな。Zodとか使うのだ

236:デフォルトの名無しさん
22/12/26 23:40:24.66 x7llhSa6Z
第一引数の型によって戻り値の型を決定できる書き方ないですか?

このようなストアがあって
type Store = {
  items: Items
  players: Player[]
}

このようなゲッターを定義して
load(key: keyof Store): Store[keyof Store] {
  const store = this.getStore()
  return store[key]
}

このように利用しようとしたらPlayery[]がItemsではないと言われてしまい。 (ですよね)
const items: Items = load('items')

ジェネリクスにしたところで<>に指定できず。

237:デフォルトの名無しさん
23/01/03 23:03:14.80 6VbKu+1R.net
pythonを書いていると型縛りが馬鹿らしくなる

238:デフォルトの名無しさん
23/01/03 23:51:28.97 FIKRmyvH.net
JavaScriptを書いていると型縛りが馬鹿らしくなる
みんながそう思ってたらTypeScriptは生まれてこなかっただろうね

239:デフォルトの名無しさん
23/01/04 00:03:33.25 eKtKRLft.net
型なんて要らねーとか言ってるのは、ほぼ1人でコーディングしてる奴
まぁ、実際1人でなら要らないかも知れない
これが複数人でコーディングする事になると、他人が実装した関数にどんなデータを渡していいか全然分からない
その為にTypeScriptがある

240:デフォルトの名無しさん
23/01/04 00:08:02.09 PCFpglko.net
型がない方が縛りプレイだろ

241:デフォルトの名無しさん
23/01/04 00:44:19.33 B1scSs4x.net
JavaScriptは引数の数すらチェックされない上に暗黙の変換にundefined/null/NaNと昔はブロックスコープもなくてバグの温床てんこ盛りだったからやろ
intとかStringとかのベーシックな型を書きまくつてるコードを見ると欠陥言語だなと思う

242:デフォルトの名無しさん
23/01/04 09:28:28.37 77WW46pZ.net
>>240
縛り方を間違うと死ぬからな

243:デフォルトの名無しさん
23/01/04 10:15:30.84 y9fxcgcU.net
Flow「…」

244:デフォルトの名無しさん
23/01/04 11:23:06.77 PU4coe7B.net
パラメタ名・変数名で型がわかるようにしとけば大概は済む
引数の個数をテキトウに呼ぶ奴がいたら、それはそんな作り方する方がおかしい

245:デフォルトの名無しさん
23/01/04 11:53:32.34 +W5BVHVt.net
そういう開発者にのしかかる煩わしさを軽減するのが型の役目だろうに

246:デフォルトの名無しさん
23/01/04 16:13:02.47 s5vEki4C.net
コーディングルールの運用で型限定するのも
コンパイラにまかせて型限定するのも
少なくとも js に限って言えば前者の方が手間は少ない

247:デフォルトの名無しさん
23/01/04 16:35:42.97 WgdCy7ph.net
本気で言ってるのか・・・?

248:デフォルトの名無しさん
23/01/04 16:38:46.50 oLi3mo91.net
>パラメタ名・変数名で型がわかるようにしとけば大概は済む
よく事故るのは受け渡すオブジェクトのメンバーの有無だったりするけどそれには無力だな。

249:デフォルトの名無しさん
23/01/04 16:48:19.89 PU4coe7B.net
大概、おおむねって話よ
よほど便利だろうから、こういう言語が生れたのだろうし全否定するわけではない
あと、処理系が変数の型を把握できても、しかるべき名前でないと、開発者に分かりにくい場合がある
自作でもこれなんだっけ?紛らわしいなって、結局名前弄ったり、名前って大事

250:デフォルトの名無しさん
23/01/04 16:56:26.80 +smwzq4n.net
型付けはあった方が良いけど、肝心の成果物がしょーもないことは多々あるな
最近まで参画していたアプリはすげー健康なブスだった

251:デフォルトの名無しさん
23/01/04 17:01:25.31 WgdCy7ph.net
開発途中で型の変更が必要になったとき安全に漏れなく修正できるメリットとかは無視できないんだけど
今までそういう経験がなかったんだろうか

252:デフォルトの名無しさん
23/01/04 17:46:37.74 JvBm8lal.net
そういうのはどのみち影響しそうな箇所を全部見て確認しなきゃいけないから、値に型があることはそれほど重要じゃないと思う
それよりも代入により生じる依存関係を静的に追跡可能であることが重要で、その点では型があることで飛躍的に静的解析の精度が上がる
ただ、そのためには静的解析しやすい作りになっていることが大前提だ
動的型畑の人って概してオブジェクトと連想配列の区別が曖昧で、静的型に馴染んだ人からすると信じられないような型安全もクソもないコード書くからな
それを根本的に改めないなら型なんて大して役に立たん

253:デフォルトの名無しさん
23/01/04 18:22:26.69 thANRos2.net
>そういうのはどのみち影響しそうな箇所を全部見て確認しなきゃいけないから、値に型があることはそれほど重要じゃないと思う
その影響しそうな箇所の把握に型があるのとないのでは大きく正確性や効率に差が出てくるでしょって話

254:デフォルトの名無しさん
23/01/04 22:43:59.04 PCFpglko.net
まぁRubyやPHP出身の低能にそもそも型書かせるのが難しいという意見には同意
根本的に教養・学が足りないから、どうしようもない
もはや言語仕様で救えないレベルの話である

255:デフォルトの名無しさん
23/01/04 22:52:50.06 492NQUrQ.net
動的型畑の奴が一概にバカとは思わないが、オブジェクトの全プロパティ舐めて値を書き換えたりするコードが突如出現したりして面食らう
根本的に思考回路が我々とは違うのだなと感じる

256:デフォルトの名無しさん
23/01/04 23:21:22.18 +smwzq4n.net
クスクス

257:デフォルトの名無しさん
23/01/05 10:41:34.55 Cbg+aaE9.net
>241
>暗黙の変換
これが諸悪の根源

258:デフォルトの名無しさん
23/01/05 21:34:07.80 OE/QT1xu.net
JavaScriptは信用できない、JavaScriptは危険。
だからJavaScriptを撲滅しようとした時代があったんだよな。
JavaScriptそのものは書くものではなくて、使うものに変化した。

259:デフォルトの名無しさん
23/01/05 22:57:13.13 ySLiYJwl.net
JSを半端に知ってるやつこそそう言うけど、地雷がたくさん埋まってる以外は悪い言語じゃない。TypeScriptも今となっては薄いラッパーに過ぎないし

260:デフォルトの名無しさん
23/01/05 23:01:32.86 +/A/RNe/.net
何作るかによるな
んで、Typescriptでしょーもないもの作ってる奴はかなり多い

261:デフォルトの名無しさん
23/01/06 00:04:22.96 B+7qMiMZ.net
動的型付けでしょーもないもの作ってる奴の方が圧倒的に多い事実

262:デフォルトの名無しさん
23/01/06 16:55:41.96 YIB2cDqh.net
jsもperlも卒業しろよ

263:デフォルトの名無しさん
23/01/07 02:08:56.86 cY6/G25e.net
TSも卒業してrust書け

264:デフォルトの名無しさん
23/01/07 14:15:02.15 8dRqY2Xm.net
ビルドが遅いからヤダ

265:デフォルトの名無しさん
23/02/02 13:12:52.48 JJCniKqD.net
(   )y-~~ (  >)y-~~( >-)y-~~( >-< )y-~~ ウマスギル・・

266:デフォルトの名無しさん
23/02/27 18:54:27.47 oOpYqea1.net
男卒業してTSしろ

267:デフォルトの名無しさん
23/03/12 13:16:33.47 s6IZ9iua.net
return this.#instance!;
URLリンク(github.com)
! って何なんや?

268:デフォルトの名無しさん
23/03/12 13:55:58.57 BMIpSqUT.net
nullとかundefinedじゃねーよって意味

269:デフォルトの名無しさん
23/03/12 21:52:14.15 mg++gyQG.net
undefinedっていらなくない?
全部nullと同等にしてほしいわ

270:デフォルトの名無しさん
23/03/12 23:18:21.71 s6IZ9iua.net
>>268
助かった
記号はググりずらくて困ってたわ

271:デフォルトの名無しさん
23/03/12 23:38:13.62 MrtVVZC+.net
>>270
次また困ったら解読アシスタントに貼り付けるといいよ
URLリンク(typescriptbook.jp)

272:デフォルトの名無しさん
23/07/30 19:53:15.24 dgsp3YJD.net
しーん

273:デフォルトの名無しさん
23/09/26 00:05:26.71 AayxzQ1y.net
しーん2

274:デフォルトの名無しさん
23/10/08 11:41:26.71 apfSCKMz.net
しーん3

275:デフォルトの名無しさん
23/11/11 14:20:03.22 Sje4N6L2.net
TypeScript が作られた由来に関連しての事ですが
JavaScript と CSSは
直感的ではなく地雷陥穽満載の言語だと思い
苦痛を感じているのですが
Web開発が根本的にもっと簡単に楽になる事は
近い将来ありえますでしょうか。
ブラウザ自体とDOM操作が
JavaScriptでしか実行できない事は
永遠に続くのでしょうか。

276:デフォルトの名無しさん
23/11/11 15:40:50.74 GVZLIDCW.net
あなたの信仰しだいです。

277:デフォルトの名無しさん
23/11/18 08:35:06.80 CqCGVMdq.net
>>275
WebAssembly

278:デフォルトの名無しさん
23/11/18 23:58:12.41 4VZDo/pg.net
strictNullChecksを有効にするとこのコードがエラーになる
const foo: { bar: string } | null = { bar: 'bar' };
if (false) if (foo !== null) console.log(foo.bar); // error TS18047: 'foo' is possibly 'null'.
falseを!trueに変えるとエラーにならない
if (!true) if (foo !== null) console.log(foo.bar);
どういうこっちゃ

279:デフォルトの名無しさん
23/11/19 01:01:24.80 6eSmn67d.net
>>0277 以前から未解決の課題です
URLリンク(github.com)

280:デフォルトの名無しさん
23/11/19 01:58:05.77 b+haLRoI.net
>>279
ほんとだ・・・到達できないコードでは文脈を無視してタイプチェックするのか・・・
const foo: string | null = 'foo';
// return;
// throw new Error();
console.log(foo.charAt(0)); // error TS18047: 'foo' is possibly 'null'.
returnかthrowのコメントを外すとエラーになる
if (foo !== null)を追加してもエラーは回避できない

281:デフォルトの名無しさん
23/11/19 11:55:13.54 dTiD0l2A.net
興味深い挙動だね
URLリンク(i.imgur.com)
そもそも到達不能コードがあること自体が問題なわけでこれがエラーになっても実害はないだろうけど
returnやthrowを仮置きしたいときにエラーを出したくないなら
if (!!true) return;
if (!!true) throw new Error();
とかするのがいいのかねぇ

282:デフォルトの名無しさん
23/12/25 19:47:27.10 /uFZ/UI7.net
最近はフレームワークが全部準備してくれるから書き心地の良さだけを享受できてたけど
久々に自分でゼロから環境作ろうとすると設定の混沌っぷりに絶望するな
たぶんハローワールドするまでの作業が一番苦しいのはTypeScriptだと思う

283:デフォルトの名無しさん
23/12/26 14:57:07.76 RK9O+rKP.net
javascript に変換してくれる
javascript をベースとしない言語を作ってくれればいいのに
何で Typescript はjavascript のだめな部分を採用するかなあ

284:デフォルトの名無しさん
23/12/26 16:19:36.04 mqBTqnav.net
Dart「」

285:デフォルトの名無しさん
23/12/26 17:24:43.39 iPMho+OF.net
腐るほどあるぞ
URLリンク(github.com)

286:デフォルトの名無しさん
23/12/27 16:09:42.74 tr4LC1TL.net
VSCode, node.js, webpack, babel で、TypeScript も出来る

Ruby on Rails 7 から、CDN から直接インポートするように変わった。
脱webpack/node.js で、esbuild へ変わった

287:デフォルトの名無しさん
23/12/29 20:15:59.53 zmYXdzDO.net
Nodeのサポート3年って期間自体は普通なんだが、JSのまま使うことって無くなってるから実質TS関連が安定するまでは捨て期間なんだよな
安定版で作り始めてリリースする頃にはもう期限切れ間近ってことが多くて体感のサポート期間がめっちゃ短く感じる

288:デフォルトの名無しさん
23/12/29 20:35:12.47 ZQd4jDMZ.net
TS関連が安定するまでってなんのこと?

289:デフォルトの名無しさん
24/01/03 11:12:40.45 ePkoaEgV.net
>>287
基本的にNodeのバージョンとTSのバージョンは独立だろう
何の話をしてるのかわからん

290:デフォルトの名無しさん
24/03/17 02:05:57.85 SEDAzzjE.net
TSがネイティブで動くブラウザを
MSは試験的に開発提供したら良いと思う。
TS-Edgeとかの名前で。
CDNから<script src="hoge.ts">を
読み込むだけで動く仕様。

291:デフォルトの名無しさん
24/03/17 10:14:57.42 M30p/Xa2.net
あんまり意味ない気がするな。
開発時のTAT改善なら今プロポーザル出してるType Annoatationsでも十分だろうし。

292:デフォルトの名無しさん
24/03/27 17:56:25.12 KuRRRRWB.net
型引数Tがnullを取るかどうかを判定する関数
function isNullable<T>(): boolean
みたいなのを作ろうとあれこれ調べてたけど
よく考えたら実行時に型情報持たないから無理な話よね
別のアプローチを考えねば

293:デフォルトの名無しさん
24/06/21 21:41:16.33 jcLAnU46.net
>>253
イマイチピンとこない、参考までに教えてほしい

294:デフォルトの名無しさん
24/06/27 12:10:53.54 5uVBistr.net
>>293
ある式の型を変更したときの要修正箇所を洗い出す方法は、一般には
1. 代入によって生じる依存関係のツリーを作る
2. ツリーの中で修正の必要な箇所を特定する
となるだろう
で1については251の言ってるように静的型であれば最適解析によって高い精度で比較的容易に作成可能だ。
2は静的型なら型の不整合によるエラーは検出できるから、完全ではないにしろ作業は多少楽にはなるだろうな。

295:デフォルトの名無しさん
25/03/12 23:21:23.37 lbLxbJz3.net
マイクロソフト、プログラミング言語「TypeScript」の処理を10倍高速にすることに成功 [478973293]
スレリンク(news板)

296:デフォルトの名無しさん
25/03/12 23:29:30.94 N9vVltw1.net
>>295
いつものガセタイトルな記事だった
当然TypeScriptが速くなるわけがない
コンパイルももちろん遅いので他の言語でコンパイルするようにしたら速くなったという当たり前の記事だった

297:デフォルトの名無しさん
25/03/13 00:40:12.20 LjFU/87D.net
Bun使おう
使ってる?みんな

298:デフォルトの名無しさん
25/03/13 00:59:18.10 CUgSs/sX.net
なに?bunて

299:デフォルトの名無しさん
25/03/13 01:38:08.11 xe4EtGLf.net
goはwasm化したときに遅いらしいから不安
早くなる余地はあるのかな
↓は簡単なコードをブラウザで解析した例らしい

URLリンク(x.com)

300:デフォルトの名無しさん
25/03/13 08:34:30.29 2MhJpLS0.net
>>298
node.jsの代わりになるようなやつ
TypeScriptをJavaScriptに変換せずそのまま実行できる
あとnpm, jest, webpackなんかと同じ機能もBunに統合されてるので、Bunだけ入れればjestとかのほかのパッケージをインストールしなくてよい

高速性がウリ(Node.jsの何倍も速い)、らしい

難点としては2022年に生まれたばかりだからまだ安定性とか将来性が不安
リファレンスがまだまだ少ない
サードパーティパッケージは基本npmと同じものをインストールできるが動かないものもある、
などなど
気になってはいるけど業務で使うのはまだちょっと怖い

301:デフォルトの名無しさん
25/03/13 09:04:37.99 Enlq0ene.net
なるほど、ありがとう
JavaScriptに変換しなくて良いのは動作が速そうだな

302:デフォルトの名無しさん
25/03/13 09:12:41.76 2MhJpLS0.net
>>301
そもそもトランスパイルが不要なことに加えて、低レベル言語で開発してるから動作そのものも速いらしい

303:デフォルトの名無しさん
25/03/13 09:28:47.05 Bo1xz4jl.net
1.0になってからはbun使ってるな

304:デフォルトの名無しさん
25/03/13 15:54:43.29 0keTTKkD.net
ブン? バン?

305:デフォルトの名無しさん
25/03/13 17:48:17.33 019dloE9.net
公式の動画でバンって言ってる

306:デフォルトの名無しさん
25/03/16 11:33:35.29 zbV3pmg2.net
TypeScriptの動的バリデーション何使ってる?
ずっとzod使ってたけどTypiaとかArkTypeとか良さそうなのがたくさんあることに気づいた
とにかくどれもzodよりずっと速そう
ただしネット上に情報が少ない

307:デフォルトの名無しさん
25/03/16 20:28:49.17 zbV3pmg2.net
というわけでArkTypeを使ってみた
いいやんこれ
俺zodよりこっちがいい

308:デフォルトの名無しさん
25/03/17 10:22:00.72 metFAlC+.net
>>304
プリンバンバンボン

309:デフォルトの名無しさん
25/03/27 07:47:43.49 VnpFG1+5.net
なぜ世界中でトップクラスに使われているTypeScriptのスレがこんなに過疎なのか?

310:デフォルトの名無しさん
25/03/27 07:54:51.37 wMNBaOOX.net
わからん
小ネタとか知りたいけど

311:デフォルトの名無しさん
25/03/27 12:48:15.21 Wq6Gp3QQ.net
>>309
おっさんはTypeScriptを使っていないということだよ

312:デフォルトの名無しさん
25/03/27 13:51:00.07 OnnNAMTi.net
TypeScriptをつかって若さを取り戻そう

313:デフォルトの名無しさん
25/03/28 10:36:36.14 QC30vvne.net
おっさんはJavaとかCOBOLとかCばっかりだからな

TypeScriptとかGoとかRustとか使っただけで、おっさんからアレコレ言われるだろ?
最近Linux Kernel Mailing Listでも、某ドライバでRustを使っただけで、main streamを汚すなとか、言われて拒否されとったやんw

314:デフォルトの名無しさん
25/03/28 10:39:51.79 ROpuYVHs.net
TypeScriptをGoやRustと同列に語るなよw
あれだけは無いわ

315:デフォルトの名無しさん
25/03/28 14:31:04.68 vLxVDob4.net
ドライバでRustを使う事が何故問題か理解出来ないZが使う言語がTypeScript

316:デフォルトの名無しさん
25/03/28 14:57:23.31 W4IssX7d.net
Nvidia Driver Written in Rust Could Arrive With Linux Kernel 6.15
URLリンク(news.itsfoss.com)

317:デフォルトの名無しさん
25/03/28 21:53:46.54 e6/uDocq.net
TypeScript使ってるけどJavaScriptにトランスパイルするのがめんどくさすぎる
tsconfigのわけわからんこと

318:デフォルトの名無しさん
25/03/29 17:35:18.54 +k4uOHnG.net
たしかにtsconfigだけで連載記事が成立しそう

319:デフォルトの名無しさん
25/03/29 17:40:47.83 nYAgMeja.net
いさぎよく中間コードを吐き出せよ
なに中途半端にJavaスクリプトコード出してんだよw

320:デフォルトの名無しさん
25/03/29 17:57:42.05 HoTjqjFP.net
tsconfigみたいな設定はaiにまかせてるな

321:デフォルトの名無しさん
25/03/30 10:03:12.64 AAHTAcw+.net
>>316
知らんが、ググッた感じではこれだろ
URLリンク(zenn.dev)

ちな、nouveauなんてゴミ使ってるのは一部の狂信者だけで、普通の人は普通にプロプライエタリ使うでしょ

322:デフォルトの名無しさん
25/03/30 10:50:20.73 o7oc034V.net
Linuxの親分がついに公式介入してRust化が前進することになったのか

>>321
>Linusはさらに、HellwigおよびRustに敵意を持つ他の古参メンテナーに明確な選択肢を示しました。
>この発言は近年のRustとLinuxの衝突に決着をつけました。
>C言語を守る保守派とRustを推進する革新派の間には数多くの対立が存在してきましたが、
>LinusがRust for Linuxプロジェクトを直接支持するために初めて公式に介入した重要な転換点でもありました。

323:デフォルトの名無しさん
25/03/30 11:54:04.05 AAHTAcw+.net
>>322
そう思えるのはお前も信者だからだろ

結局のところRust信者はポリコレ過ぎる
これも「政治的に」Linusにチクって解決しようとしたところ、ブチ切れられただけ
記事の話が全部本当だとして総合的に推定すると、
Rustから叩く為のラッパ的な物を用意しようとしたところ政治闘争となり、両者辞任の痛み分け、
カーネル自体のコードには今後ともRustは無し、という所ではないかと
これは「支持」ではなく「容認」だろうよ

ただまあ、何でそんな物が『カーネル側に』必要なのか技術的に疑問ではあるがな
RustからCのAPIを叩けないなんて事はあり得ないだろうし、仮にそうだとしても、API変換をRust側でやればよかっただけの話
俺はHellwigの方が正しいと思う。まあLinus案も落とし所としてはありなだろうけど
(というかLinusはこの辺が断然上手い)

Rust信者は、技術的理由ではなく、非Rust話者を排除する為にRustを使う
TypeScriptにも似たような奴はいると思うけど

324:デフォルトの名無しさん
25/03/30 12:02:36.30 o7oc034V.net
>>323
その記事にも書かれてるように、
LinusがRustを支持したため、
Rust反対派のHellwigが敗北して担当を降りて、
Rust APIがLinuxに採り入れたみたいよ

まるでJavaScriptにおいてTypeScript反対派が敗北して、
次々とTypeScriptが採り入れられいってメインストリームとなった状況を彷彿とさせますね

325:デフォルトの名無しさん
25/03/30 12:36:22.04 6QsLEZYT.net
話題をギリギリTypeScriptに絡めてて草

326:デフォルトの名無しさん
25/03/30 13:12:43.62 YPXHQVpO.net
TypeScriptには信頼性をアピールすることでPHPとRubyという2大動的型糞を抹殺しJSファミリーをフルスタックWeb開発言語の頂点にまで押し上げた、
更にはVSCodeで実績を示しクロスプラットフォームデスクトップアプリ分野でも覇権を取ったという実績があるから非難のしようがない
全方位の既存勢力にマウントし散らかしてるRustさんと一緒にしてはいけない

327:デフォルトの名無しさん
25/03/30 13:56:11.13 ojeUSEcc.net
中身なんかどうでもいいから手早くアプリ出来上がってくれってな勢力が大多数なんだよなぁ

328:デフォルトの名無しさん
25/03/30 14:30:47.12 qEaF/m8D.net
サーバーサイドはJavaScriptやPythonのライブラリをC/C++でなく楽なRustで書くケースが増えてるね
フロントエンドもWebAssemblyをRustで書くのが主流になった

329:デフォルトの名無しさん
25/03/30 15:23:36.04 6QsLEZYT.net
ウェブアセンブリ勉強したい

330:デフォルトの名無しさん
25/03/30 17:19:46.06 rZjaYrSr.net
Rustはバックエンドでも一番速いからTypeScriptとRustの二つを覚えればWeb関連は最強

331:デフォルトの名無しさん
25/03/30 22:51:31.77 9PyrXN+K.net
>>327
ほんまそれ
どの業界で何をやろうとも、それだけだな

332:デフォルトの名無しさん
25/04/02 00:12:34.04 HkPN/s9G.net
ほえー…もうフロントはwasmが主流になってたのか…

333:デフォルトの名無しさん
25/04/11 18:51:02.99 l2FGlZWH.net
tsconfigのmoduleとmoduleResolution、いつか綺麗になることはあるのか?
ていうかもう全部ESMでよくないか?

334:デフォルトの名無しさん
25/04/12 14:51:21.70 n5PHQIzU.net
よくない。
まだ "bundler" は必要。

335:デフォルトの名無しさん
25/04/12 16:59:28.80 g4WgMVTt.net
>>332
主流はまだJS/TS
フロントでWASMは個人的には微妙だと思う
特にRustはビルド遅いし、UIのサイズや見た目を調整するだけでも再ビルドが必要になるものはフロントと相性悪いと思う

336:デフォルトの名無しさん
25/04/12 20:23:17.33 Mda8ZghK.net
>>335
UIはTypeScript、複雑なロジックだけRustやね

337:デフォルトの名無しさん
25/04/12 20:50:15.66 g4WgMVTt.net
>>336
Rustは高パフォーマンスが必要な時だけじゃない?
主目的が「複雑なロジックを扱う」だけだとRustは採用しづらいと思う
表現力に拘りたいだけならScalaでもいいわけだし

338:デフォルトの名無しさん
25/04/12 21:16:27.29 jUACPL71.net
サイズがデカくなるScalaを使うメリットが全くわからない
Wasm by Rustはメリットがはっきりしているけど

339:デフォルトの名無しさん
25/04/12 21:30:23.80 Mda8ZghK.net
>>337
はいおっしゃるとおりです

340:デフォルトの名無しさん
25/04/12 22:35:51.54 g4WgMVTt.net
>>338
すまんサーバーサイドの話
Scalaも最近はそんな人気はないし微妙ではあるけど

Rustはパフォーマンスが必要な分野ならとても有力な選択肢だけど、そういう要求が無いのであれば素直にGCのある言語を使った方が無難だろうというのが自分の意見
Rustの関数型っぽい部分 (型による表現力の高さ) は強みではあるけど、あくまで副次的なもので、それ目的にRustを採用すると書き辛さの方が目立つと思う
今どきだとメモリ管理が必要な言語を経験してない開発者もそれなりにいるし、所有権やライフタイムまわりで苦戦すると思う

341:デフォルトの名無しさん
25/04/12 23:27:20.11 bJFScwv+.net
>>340
苦戦するのは慣れるまでの間だけだよ
コツをつかんでしまえば大丈夫
そして引き換えに得るものが非常に大きいね

342:デフォルトの名無しさん
25/04/13 07:29:44.21 LPI6BP0W.net
>>340
メモリ周りで苦戦するのはただの馬鹿
きちんと理解してる奴はRustすら要らん、実際Cでリークしてないだろ
俺はRustはこのまま死んでどうぞ、と思っている

343:デフォルトの名無しさん
25/04/13 07:36:00.46 syTgtXXB.net
>>342
C/C++は未だに問題出まくってセキュリティ脆弱性にも繋がっている
そのため様々なものが次々とRust化へ進んでいる
ここ5chが使っているCDN CloudflareもRust製へと置き換わった

344:デフォルトの名無しさん
25/04/13 07:46:48.45 0DTk848I.net
こっちでやれ
URLリンク(itest.5ch.net)

345:デフォルトの名無しさん
25/04/13 08:05:12.79 LPI6BP0W.net
>>343
そう思うならお前はRust使えばいい

>>344
Rustの連中とは話が通じないのでどうでもいい、というか、そもそも好きな言語使って、廃れたら滅びるでいいだけの話
C++も同様に糞だし、Cもやる気が無さ過ぎて糞だ
JSが蔓延るのも分かる

346:デフォルトの名無しさん
25/04/13 08:21:04.68 LPI6BP0W.net
というかね、Rust信者は一神教であり、
Rust=全知全能の神であり、それ以外の神の存在を『一切認めない』、なんだな
だから多神教な俺からしたら馬鹿げてて、どうやっても平行線だし、時間の無駄でしかない

なんでRust信者がそうなるのかはよく分からんが

347:デフォルトの名無しさん
25/04/13 09:29:16.46 c6Sg9WHG.net
ガイジが多すぎる

348:デフォルトの名無しさん
25/04/13 10:09:09.85 9+E6vnhP.net
外字鹿以内

349:デフォルトの名無しさん
25/04/13 10:19:03.37 9+E6vnhP.net
>>342
ほんそれ
Cで充分だったんだ

350:デフォルトの名無しさん
25/04/13 10:20:06.61 9+E6vnhP.net
>>343
その割にfirefoxはいまだに糞のまま

351:デフォルトの名無しさん
25/04/13 12:19:34.58 WdQRlxpc.net
なんか、とんでもなく盛り上がっていて、ワロタw
みんな、くすぶっているんやなー

個人的には、RustよりもPHPのほうがさっさと滅んでほしいわw

352:デフォルトの名無しさん
25/04/13 15:23:04.70 LPI6BP0W.net
PHPは滅ばないよ、だってあれ便利だし
ほぼ静的+一部動的なサイトを作るときに、PHP以上の物がない
ぶっちぎりの糞言語だったが、何だかんだで改善してきてるし
(というか、プログラミング言語として捉えるから不満なのであって、Apache上で動くDSLだと考えれば凄く納得出来るし素晴らしく有用)

そういえばJSも滅べ滅べと言われていたけど、言ってる奴等が滅んだな
TSもある意味AltJSで滅べ勢だったが、何となく背乗りしてる感がある

353:デフォルトの名無しさん
25/04/13 22:02:26.52 lSZBXHbs.net
>>350
Firefoxのメイン部分はC++のままで進展がないんだよな
Chromeは既に少しずつRust化を進めているから期待

354:デフォルトの名無しさん
25/04/13 22:05:07.20 yatJIxqY.net
盛り上がっていると思ったらTypeScriptの話題じゃなかった悲しみ

355:デフォルトの名無しさん
25/04/14 18:14:36.17 A8vTDgQe.net
>>352
php→goへのリライト案件は増えてますけど、
相変わらず求人は多めですね

356:デフォルトの名無しさん
25/04/14 20:45:54.18 30cdfZPh.net
>>355
PHPは非プログラマ、というかデザイナでも行ける簡単さだからな
そして広報が主な目的のサイト、つまりデザイナの方が主役な状況では最有力な選択肢になる

問題は動作速度と、ユーザー間が完全に分離してる事だが、(この為、例えばチャットサイトとかはPHPではかなり無理)
逆に言えばこれが問題にならない局面では今後とも使われ続けるだろうし、
そもそもPHPを殺しにかかってる言語がない


Rust信者の凶暴性は、世界を一時的にであれ統一したCを殺しにかかってる事にある
TypeScript等その他の言語は、そもそもCの領域を侵そうとしてないから、最初から最低限二人の神=C/C++と自言語は認めてる
ここら辺が根本的に違う
ただRustはプログラミング言語としては筋が悪い
ただしCでは往年の先輩層が厚すぎて絶対にイキれないので、

・とにかくイキりたい若年層

には刺さる
また、昨今のOSSで開発する際、伽藍とバザールの通り、どうしても「コミットを受け入れるかrejectするか?」という問題が回避出来ず、
従来型(伽藍的アプローチ)の場合は「内容を見て判断する」わけだが、これはどうしてもある程度主観的に見えてしまう
単純に言えば、rejectされたコミッタは絶対に納得しない
この点、Rustは少なくともメモリリークに関してはコンパイルが通ればわりと大丈夫らしいので、

・コミットは基本的に全部受け入れる(=コンパイルが通ればおk)

という基準で管理する作戦であれば、昨今のOSSの状況とは合致する
(Cでこれをやるとまともに動くかどうかすら怪しいが、Rustなら少なくともある程度は行ける)
だからこの作戦でイキりたい馬鹿共の承認欲求を糧にしてガンガン進行すれば現在の情勢には向いてる

ただ、Rustの連中がこれをやってるとは思えないし、
α世代にとっては、今Rustでイキり倒してる馬鹿共は邪魔なだけなので、多分また新しい言語が出てきてそいつらはそっちに飛びつく
だからあと10年で化けられなければRustはこのまま死ぬと思ってるし、俺はこれを望んでる

357:デフォルトの名無しさん
25/04/14 20:57:42.36 XXK1Cezl.net
>>356
今月もWindowsからChromeに至るまで大量のセキュリティ脆弱性アナウンスが出た現実を見よう
C/C++は完全に詰んでる
もちろんWindowsもChromeも少しずつRustに置き換えていってる
コードが巨大だから置き換えに時間はかかるがこの流れが止まることはない

358:デフォルトの名無しさん
25/04/14 20:59:14.42 T8syP9+g.net
>>354
ほんまそれな

359:デフォルトの名無しさん
25/04/14 21:01:37.23 T8syP9+g.net
ちょっと話題振るけどフロントエンドのフレームワークといえば今はReact?
Vueはもう死に体?

360:デフォルトの名無しさん
25/04/15 00:19:13.44 ZxPidxgq.net
現状はReactが一番強い
Vueも死んではいないけど、他の選択肢 (SvelteとかSolidとか) も出てきてて埋もれがち
例えば今からフロントを学ぼうという人がどれか一つを最初に始めるなら、おそらくReactが選択肢としては一番良いと思う

361:デフォルトの名無しさん
25/04/15 22:08:26.65 aWATTljU.net
Effective TypeScript 第2版出たよ
買ったよ

362:デフォルトの名無しさん
25/04/16 10:15:10.36 vgaVJXOy.net
こんなスクリプト言語スクリプトなんか使える奴はあたまおかしいよな

363:デフォルトの名無しさん
25/04/17 10:27:18.15 dDLPZMHA.net
褒められた?

364:デフォルトの名無しさん
25/04/17 14:54:48.83 fw0OLUjq.net
蛇腹御用達言語

365:デフォルトの名無しさん
25/04/17 16:00:08.01 szbpCwWd.net
【AI】OpenAIが「GPT 4.1」のAPIを公開、100万トークン対応と実用性能で飛躍的進化を遂げた次世代AIモデル [すらいむ★]
スレリンク(scienceplus板)


上記のリンク先のコメントを読んでもまだ医者の威厳を保てるのか?

366:デフォルトの名無しさん
25/04/17 19:42:09.87 p4ijuII3.net
エキスパートシステム取り入れて無い医者とかいまどきまだ居るの?

367:デフォルトの名無しさん
25/04/18 12:33:39.43 LTc7knjt.net
マルチンコにレスする香具師は荒らし

368:デフォルトの名無しさん
25/04/19 04:04:51.48 FhCqpqMY.net
【2025年最新】自然な声の音声読み上げソフト5選!AI技術で ...
URLリンク(ondoku3.com)
※無料で5000文字まで音声合成エンジンで読み上げ可能
※音声合成エンジンは人間の声のサンプルから声質が作成されている


「Grok」が過去の会話を覚え続けるようになった--ChatGPTに追従 オフにする方法は?
2025年04月18日 05時20
URLリンク(japan.cnet.com)
>>「ChatGPT」やGoogleの「Gemini」も同様の記憶機能を導入している。これらのサービスも、長期的な会話履歴を保持し、ユーザーに合わせた回答が可能となっている。
※GrokはChatGPTで規制されていることも返答するようになっている



統合失調症の幻聴で半分人間半分AIと申されていた
統合失調症の幻聴で宇宙人とも話されていたのでかなり昔からできていたと思われる
※対象者【統合失調症】の考えに対しては何を考えているかは対象者【統合失調症】に聞いてみないことには意味不明⒮

369:デフォルトの名無しさん
25/04/23 22:58:30.47 yb1dQj0Y.net
Bunの速度検証をネットで見て回ってるけどNodeと大差なさそう
それなら枯れたNode使い続けるわな

370:デフォルトの名無しさん
25/05/12 19:47:42.38 Gvci02ow.net
誰も書き込まない
どうやら誰もTypeScriptを使っていないようだ

371:デフォルトの名無しさん
25/05/13 01:17:03.69 fD5tVniT.net
タイポなかったら開発できねーよ

372:デフォルトの名無しさん
25/05/14 20:25:52.45 u4PNt/Ez.net
TypeScriptを(C++等のように機械語に)コンパイルする方法が知りたいです(´・ω・)

373:デフォルトの名無しさん
25/05/14 22:26:28.07 pn5vXw+e.net
AIに聞いたらDenoってのがあるらしいよ

374:デフォルトの名無しさん
25/05/14 22:39:15.13 uDIzjmjF.net
Porffor

375:デフォルトの名無しさん
25/05/14 22:59:23.58 Gm7aNQBc.net
Porfforおもしろそうやね
でもまだJavaScriptやTypeScriptの全機能・構文に対応してるわけではないみたいやね

あとDeno compileはdenoの実行ファイルとJavaScriptソースコードをバンドルして1つの実行ファイルにしてるだけでソースコードが機械語にコンパイルされてるわけではないね

376:デフォルトの名無しさん
25/05/26 16:13:10.61 beau+2C5.net
若者はTSKaigiに参加、おっさんは5chにこもる

377:デフォルトの名無しさん
25/06/14 21:27:12.36 /OxuSDvW.net
tscでは cyclic structure が多用されてるらしいが、

・どういう場所に
・どういう理由で

使われてるか知ってたら教えてくれ
(コード読めはそのとおりだが、知ってたらよろしく)

経緯は Goスレ、スレリンク(tech板:6番)-20
記事は
マイクロソフト、TypeScriptのコンパイラなどをGo言語に移植することで10倍の処理速度に
URLリンク(www.publickey1.jp)

378:デフォルトの名無しさん
25/06/21 02:31:30.37 fTkaAoMm.net
プロジェクト参照をしてみたがさっぱりうまくいかん
npx tsc -b
したら依存関係を無視して滅茶苦茶にビルドが走ってエラーになる
なんだこれは

379:デフォルトの名無しさん
25/07/01 08:26:48.69 qkwLQxOG.net
それこそがTSだ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch