TypeScript part4
- 1 :デフォルトの名無しさん:2021/12/30(木) 22:57:02.78 ID:XEA11GKy.net
- http://www.typescriptlang.org/
JavaScript that scales.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.
part1
https://peace.5ch.net/test/read.cgi/tech/1349187527/
part2
https://mevius.5ch.net/test/read.cgi/tech/1430386649/
part3
https://mevius.5ch.net/test/read.cgi/tech/1524746903/
- 245 :デフォルトの名無しさん:2023/01/04(水) 11:53:32.34 ID:+W5BVHVt.net
- そういう開発者にのしかかる煩わしさを軽減するのが型の役目だろうに
- 246 :デフォルトの名無しさん:2023/01/04(水) 16:13:02.47 ID:s5vEki4C.net
- コーディングルールの運用で型限定するのも
コンパイラにまかせて型限定するのも
少なくとも js に限って言えば前者の方が手間は少ない
- 247 :デフォルトの名無しさん:2023/01/04(水) 16:35:42.97 ID:WgdCy7ph.net
- 本気で言ってるのか・・・?
- 248 :デフォルトの名無しさん:2023/01/04(水) 16:38:46.50 ID:oLi3mo91.net
- >パラメタ名・変数名で型がわかるようにしとけば大概は済む
よく事故るのは受け渡すオブジェクトのメンバーの有無だったりするけどそれには無力だな。
- 249 :デフォルトの名無しさん:2023/01/04(水) 16:48:19.89 ID:PU4coe7B.net
- 大概、おおむねって話よ
よほど便利だろうから、こういう言語が生れたのだろうし全否定するわけではない
あと、処理系が変数の型を把握できても、しかるべき名前でないと、開発者に分かりにくい場合がある
自作でもこれなんだっけ?紛らわしいなって、結局名前弄ったり、名前って大事
- 250 :デフォルトの名無しさん:2023/01/04(水) 16:56:26.80 ID:+smwzq4n.net
- 型付けはあった方が良いけど、肝心の成果物がしょーもないことは多々あるな
最近まで参画していたアプリはすげー健康なブスだった
- 251 :デフォルトの名無しさん:2023/01/04(水) 17:01:25.31 ID:WgdCy7ph.net
- 開発途中で型の変更が必要になったとき安全に漏れなく修正できるメリットとかは無視できないんだけど
今までそういう経験がなかったんだろうか
- 252 :デフォルトの名無しさん:2023/01/04(水) 17:46:37.74 ID:JvBm8lal.net
- そういうのはどのみち影響しそうな箇所を全部見て確認しなきゃいけないから、値に型があることはそれほど重要じゃないと思う
それよりも代入により生じる依存関係を静的に追跡可能であることが重要で、その点では型があることで飛躍的に静的解析の精度が上がる
ただ、そのためには静的解析しやすい作りになっていることが大前提だ
動的型畑の人って概してオブジェクトと連想配列の区別が曖昧で、静的型に馴染んだ人からすると信じられないような型安全もクソもないコード書くからな
それを根本的に改めないなら型なんて大して役に立たん
- 253 :デフォルトの名無しさん:2023/01/04(水) 18:22:26.69 ID:thANRos2.net
- >そういうのはどのみち影響しそうな箇所を全部見て確認しなきゃいけないから、値に型があることはそれほど重要じゃないと思う
その影響しそうな箇所の把握に型があるのとないのでは大きく正確性や効率に差が出てくるでしょって話
- 254 :デフォルトの名無しさん:2023/01/04(水) 22:43:59.04 ID:PCFpglko.net
- まぁRubyやPHP出身の低能にそもそも型書かせるのが難しいという意見には同意
根本的に教養・学が足りないから、どうしようもない
もはや言語仕様で救えないレベルの話である
- 255 :デフォルトの名無しさん:2023/01/04(水) 22:52:50.06 ID:492NQUrQ.net
- 動的型畑の奴が一概にバカとは思わないが、オブジェクトの全プロパティ舐めて値を書き換えたりするコードが突如出現したりして面食らう
根本的に思考回路が我々とは違うのだなと感じる
- 256 :デフォルトの名無しさん:2023/01/04(水) 23:21:22.18 ID:+smwzq4n.net
- クスクス
- 257 :デフォルトの名無しさん:2023/01/05(木) 10:41:34.55 ID:Cbg+aaE9.net
- >241
>暗黙の変換
これが諸悪の根源
- 258 :デフォルトの名無しさん:2023/01/05(木) 21:34:07.80 ID:OE/QT1xu.net
- JavaScriptは信用できない、JavaScriptは危険。
だからJavaScriptを撲滅しようとした時代があったんだよな。
JavaScriptそのものは書くものではなくて、使うものに変化した。
- 259 :デフォルトの名無しさん:2023/01/05(木) 22:57:13.13 ID:ySLiYJwl.net
- JSを半端に知ってるやつこそそう言うけど、地雷がたくさん埋まってる以外は悪い言語じゃない。TypeScriptも今となっては薄いラッパーに過ぎないし
- 260 :デフォルトの名無しさん:2023/01/05(木) 23:01:32.86 ID:+/A/RNe/.net
- 何作るかによるな
んで、Typescriptでしょーもないもの作ってる奴はかなり多い
- 261 :デフォルトの名無しさん:2023/01/06(金) 00:04:22.96 ID:B+7qMiMZ.net
- 動的型付けでしょーもないもの作ってる奴の方が圧倒的に多い事実
- 262 :デフォルトの名無しさん:2023/01/06(金) 16:55:41.96 ID:YIB2cDqh.net
- jsもperlも卒業しろよ
- 263 :デフォルトの名無しさん:2023/01/07(土) 02:08:56.86 ID:cY6/G25e.net
- TSも卒業してrust書け
- 264 :デフォルトの名無しさん:2023/01/07(土) 14:15:02.15 ID:8dRqY2Xm.net
- ビルドが遅いからヤダ
- 265 :デフォルトの名無しさん:2023/02/02(木) 13:12:52.48 ID:JJCniKqD.net
- ( )y-~~ ( >)y-~~( >-)y-~~( >-< )y-~~ ウマスギル・・
- 266 :デフォルトの名無しさん:2023/02/27(月) 18:54:27.47 ID:oOpYqea1.net
- 男卒業してTSしろ
- 267 :デフォルトの名無しさん:2023/03/12(日) 13:16:33.47 ID:s6IZ9iua.net
- return this.#instance!;
https://github.com/denoland/showcase_chat/blob/970c56fbb229f00805c0f3b0adde6f4232446a3e/helpers/loader.ts#L36
! って何なんや?
- 268 :デフォルトの名無しさん:2023/03/12(日) 13:55:58.57 ID:BMIpSqUT.net
- nullとかundefinedじゃねーよって意味
- 269 :デフォルトの名無しさん:2023/03/12(日) 21:52:14.15 ID:mg++gyQG.net
- undefinedっていらなくない?
全部nullと同等にしてほしいわ
- 270 :デフォルトの名無しさん:2023/03/12(日) 23:18:21.71 ID:s6IZ9iua.net
- >>268
助かった
記号はググりずらくて困ってたわ
- 271 :デフォルトの名無しさん:2023/03/12(日) 23:38:13.62 ID:MrtVVZC+.net
- >>270
次また困ったら解読アシスタントに貼り付けるといいよ
https://typescriptbook.jp/code-reading-assistant#eJzT11d43DgZjFa_WL74xaq1jxtnPm7qfty0-XHznsfNnY-bJj1tXfq0a_bjxumPG5c9bux_3LjgcePUx40tXEWpJaVFeQolGZnFesqZecUliXnJqYrWAJnzL3Q
- 272 :デフォルトの名無しさん:2023/07/30(日) 19:53:15.24 ID:dgsp3YJD.net
- しーん
- 273 :デフォルトの名無しさん:2023/09/26(火) 00:05:26.71 ID:AayxzQ1y.net
- しーん2
- 274 :デフォルトの名無しさん:2023/10/08(日) 11:41:26.71 ID:apfSCKMz.net
- しーん3
- 275 :デフォルトの名無しさん:2023/11/11(土) 14:20:03.22 ID:Sje4N6L2.net
- TypeScript が作られた由来に関連しての事ですが
JavaScript と CSSは
直感的ではなく地雷陥穽満載の言語だと思い
苦痛を感じているのですが
Web開発が根本的にもっと簡単に楽になる事は
近い将来ありえますでしょうか。
ブラウザ自体とDOM操作が
JavaScriptでしか実行できない事は
永遠に続くのでしょうか。
- 276 :デフォルトの名無しさん:2023/11/11(土) 15:40:50.74 ID:GVZLIDCW.net
- あなたの信仰しだいです。
- 277 :デフォルトの名無しさん:2023/11/18(土) 08:35:06.80 ID:CqCGVMdq.net
- >>275
WebAssembly
- 278 :デフォルトの名無しさん:2023/11/18(土) 23:58:12.41 ID: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 :デフォルトの名無しさん:2023/11/19(日) 01:01:24.80 ID:6eSmn67d.net
- >>0277 以前から未解決の課題です
ttps://github.com/microsoft/TypeScript/issues/26914
- 280 :デフォルトの名無しさん:2023/11/19(日) 01:58:05.77 ID: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 :デフォルトの名無しさん:2023/11/19(日) 11:55:13.54 ID:dTiD0l2A.net
- 興味深い挙動だね
https://i.imgur.com/ZxUFyxD.png
そもそも到達不能コードがあること自体が問題なわけでこれがエラーになっても実害はないだろうけど
returnやthrowを仮置きしたいときにエラーを出したくないなら
if (!!true) return;
if (!!true) throw new Error();
とかするのがいいのかねぇ
- 282 :デフォルトの名無しさん:2023/12/25(月) 19:47:27.10 ID:/uFZ/UI7.net
- 最近はフレームワークが全部準備してくれるから書き心地の良さだけを享受できてたけど
久々に自分でゼロから環境作ろうとすると設定の混沌っぷりに絶望するな
たぶんハローワールドするまでの作業が一番苦しいのはTypeScriptだと思う
- 283 :デフォルトの名無しさん:2023/12/26(火) 14:57:07.76 ID:RK9O+rKP.net
- javascript に変換してくれる
javascript をベースとしない言語を作ってくれればいいのに
何で Typescript はjavascript のだめな部分を採用するかなあ
- 284 :デフォルトの名無しさん:2023/12/26(火) 16:19:36.04 ID:mqBTqnav.net
- Dart「」
- 285 :デフォルトの名無しさん:2023/12/26(火) 17:24:43.39 ID:iPMho+OF.net
- 腐るほどあるぞ
https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS
- 286 :デフォルトの名無しさん:2023/12/27(水) 16:09:42.74 ID:tr4LC1TL.net
- VSCode, node.js, webpack, babel で、TypeScript も出来る
Ruby on Rails 7 から、CDN から直接インポートするように変わった。
脱webpack/node.js で、esbuild へ変わった
- 287 :デフォルトの名無しさん:2023/12/29(金) 20:15:59.53 ID:zmYXdzDO.net
- Nodeのサポート3年って期間自体は普通なんだが、JSのまま使うことって無くなってるから実質TS関連が安定するまでは捨て期間なんだよな
安定版で作り始めてリリースする頃にはもう期限切れ間近ってことが多くて体感のサポート期間がめっちゃ短く感じる
- 288 :デフォルトの名無しさん:2023/12/29(金) 20:35:12.47 ID:ZQd4jDMZ.net
- TS関連が安定するまでってなんのこと?
- 289 :デフォルトの名無しさん:2024/01/03(水) 11:12:40.45 ID:ePkoaEgV.net
- >>287
基本的にNodeのバージョンとTSのバージョンは独立だろう
何の話をしてるのかわからん
- 290 :デフォルトの名無しさん:2024/03/17(日) 02:05:57.85 ID:SEDAzzjE.net
- TSがネイティブで動くブラウザを
MSは試験的に開発提供したら良いと思う。
TS-Edgeとかの名前で。
CDNから<script src="hoge.ts">を
読み込むだけで動く仕様。
- 291 :デフォルトの名無しさん:2024/03/17(日) 10:14:57.42 ID:M30p/Xa2.net
- あんまり意味ない気がするな。
開発時のTAT改善なら今プロポーザル出してるType Annoatationsでも十分だろうし。
- 292 :デフォルトの名無しさん:2024/03/27(水) 17:56:25.12 ID:KuRRRRWB.net
- 型引数Tがnullを取るかどうかを判定する関数
function isNullable<T>(): boolean
みたいなのを作ろうとあれこれ調べてたけど
よく考えたら実行時に型情報持たないから無理な話よね
別のアプローチを考えねば
- 293 :デフォルトの名無しさん:2024/06/21(金) 21:41:16.33 ID:jcLAnU46.net
- >>253
イマイチピンとこない、参考までに教えてほしい
- 294 :デフォルトの名無しさん:2024/06/27(木) 12:10:53.54 ID:5uVBistr.net
- >>293
ある式の型を変更したときの要修正箇所を洗い出す方法は、一般には
1. 代入によって生じる依存関係のツリーを作る
2. ツリーの中で修正の必要な箇所を特定する
となるだろう
で1については251の言ってるように静的型であれば最適解析によって高い精度で比較的容易に作成可能だ。
2は静的型なら型の不整合によるエラーは検出できるから、完全ではないにしろ作業は多少楽にはなるだろうな。
106 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200