X



TypeScript part4
0241デフォルトの名無しさん
垢版 |
2023/01/04(水) 09:28:28.37ID:77WW46pZ
>>239
縛り方を間違うと死ぬからな
0243デフォルトの名無しさん
垢版 |
2023/01/04(水) 11:23:06.77ID:PU4coe7B
パラメタ名・変数名で型がわかるようにしとけば大概は済む
引数の個数をテキトウに呼ぶ奴がいたら、それはそんな作り方する方がおかしい
0245デフォルトの名無しさん
垢版 |
2023/01/04(水) 16:13:02.47ID:s5vEki4C
コーディングルールの運用で型限定するのも
コンパイラにまかせて型限定するのも
少なくとも js に限って言えば前者の方が手間は少ない
0247デフォルトの名無しさん
垢版 |
2023/01/04(水) 16:38:46.50ID:oLi3mo91
>パラメタ名・変数名で型がわかるようにしとけば大概は済む

よく事故るのは受け渡すオブジェクトのメンバーの有無だったりするけどそれには無力だな。
0248デフォルトの名無しさん
垢版 |
2023/01/04(水) 16:48:19.89ID:PU4coe7B
大概、おおむねって話よ
よほど便利だろうから、こういう言語が生れたのだろうし全否定するわけではない
あと、処理系が変数の型を把握できても、しかるべき名前でないと、開発者に分かりにくい場合がある
自作でもこれなんだっけ?紛らわしいなって、結局名前弄ったり、名前って大事
0249デフォルトの名無しさん
垢版 |
2023/01/04(水) 16:56:26.80ID:+smwzq4n
型付けはあった方が良いけど、肝心の成果物がしょーもないことは多々あるな
最近まで参画していたアプリはすげー健康なブスだった
0250デフォルトの名無しさん
垢版 |
2023/01/04(水) 17:01:25.31ID:WgdCy7ph
開発途中で型の変更が必要になったとき安全に漏れなく修正できるメリットとかは無視できないんだけど
今までそういう経験がなかったんだろうか
0251デフォルトの名無しさん
垢版 |
2023/01/04(水) 17:46:37.74ID:JvBm8lal
そういうのはどのみち影響しそうな箇所を全部見て確認しなきゃいけないから、値に型があることはそれほど重要じゃないと思う
それよりも代入により生じる依存関係を静的に追跡可能であることが重要で、その点では型があることで飛躍的に静的解析の精度が上がる
ただ、そのためには静的解析しやすい作りになっていることが大前提だ
動的型畑の人って概してオブジェクトと連想配列の区別が曖昧で、静的型に馴染んだ人からすると信じられないような型安全もクソもないコード書くからな
それを根本的に改めないなら型なんて大して役に立たん
0252デフォルトの名無しさん
垢版 |
2023/01/04(水) 18:22:26.69ID:thANRos2
>そういうのはどのみち影響しそうな箇所を全部見て確認しなきゃいけないから、値に型があることはそれほど重要じゃないと思う
その影響しそうな箇所の把握に型があるのとないのでは大きく正確性や効率に差が出てくるでしょって話
0253デフォルトの名無しさん
垢版 |
2023/01/04(水) 22:43:59.04ID:PCFpglko
まぁRubyやPHP出身の低能にそもそも型書かせるのが難しいという意見には同意
根本的に教養・学が足りないから、どうしようもない
もはや言語仕様で救えないレベルの話である
0254デフォルトの名無しさん
垢版 |
2023/01/04(水) 22:52:50.06ID:492NQUrQ
動的型畑の奴が一概にバカとは思わないが、オブジェクトの全プロパティ舐めて値を書き換えたりするコードが突如出現したりして面食らう
根本的に思考回路が我々とは違うのだなと感じる
0255デフォルトの名無しさん
垢版 |
2023/01/04(水) 23:21:22.18ID:+smwzq4n
クスクス
0257デフォルトの名無しさん
垢版 |
2023/01/05(木) 21:34:07.80ID:OE/QT1xu
JavaScriptは信用できない、JavaScriptは危険。

だからJavaScriptを撲滅しようとした時代があったんだよな。

JavaScriptそのものは書くものではなくて、使うものに変化した。
0258デフォルトの名無しさん
垢版 |
2023/01/05(木) 22:57:13.13ID:ySLiYJwl
JSを半端に知ってるやつこそそう言うけど、地雷がたくさん埋まってる以外は悪い言語じゃない。TypeScriptも今となっては薄いラッパーに過ぎないし
0259デフォルトの名無しさん
垢版 |
2023/01/05(木) 23:01:32.86ID:+/A/RNe/
何作るかによるな
んで、Typescriptでしょーもないもの作ってる奴はかなり多い
0261デフォルトの名無しさん
垢版 |
2023/01/06(金) 16:55:41.96ID:YIB2cDqh
jsもperlも卒業しろよ
0269デフォルトの名無しさん
垢版 |
2023/03/12(日) 23:18:21.71ID:s6IZ9iua
>>267
助かった
記号はググりずらくて困ってたわ
0271デフォルトの名無しさん
垢版 |
2023/07/30(日) 19:53:15.24ID:dgsp3YJD
しーん
0274デフォルトの名無しさん
垢版 |
2023/11/11(土) 14:20:03.22ID:Sje4N6L2
TypeScript が作られた由来に関連しての事ですが
JavaScript と CSSは
直感的ではなく地雷陥穽満載の言語だと思い
苦痛を感じているのですが

Web開発が根本的にもっと簡単に楽になる事は
近い将来ありえますでしょうか。
ブラウザ自体とDOM操作が
JavaScriptでしか実行できない事は
永遠に続くのでしょうか。
0277デフォルトの名無しさん
垢版 |
2023/11/18(土) 23:58:12.41ID:4VZDo/pg
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);

どういうこっちゃ
0278デフォルトの名無しさん
垢版 |
2023/11/19(日) 01:01:24.80ID:6eSmn67d
>>0277 以前から未解決の課題です
ttps://github.com/microsoft/TypeScript/issues/26914
0279デフォルトの名無しさん
垢版 |
2023/11/19(日) 01:58:05.77ID:b+haLRoI
>>278
ほんとだ・・・到達できないコードでは文脈を無視してタイプチェックするのか・・・

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)を追加してもエラーは回避できない
0280デフォルトの名無しさん
垢版 |
2023/11/19(日) 11:55:13.54ID:dTiD0l2A
興味深い挙動だね
https://i.imgur.com/ZxUFyxD.png

そもそも到達不能コードがあること自体が問題なわけでこれがエラーになっても実害はないだろうけど
returnやthrowを仮置きしたいときにエラーを出したくないなら
if (!!true) return;
if (!!true) throw new Error();
とかするのがいいのかねぇ
0281デフォルトの名無しさん
垢版 |
2023/12/25(月) 19:47:27.10ID:/uFZ/UI7
最近はフレームワークが全部準備してくれるから書き心地の良さだけを享受できてたけど
久々に自分でゼロから環境作ろうとすると設定の混沌っぷりに絶望するな
たぶんハローワールドするまでの作業が一番苦しいのはTypeScriptだと思う
0282デフォルトの名無しさん
垢版 |
2023/12/26(火) 14:57:07.76ID:RK9O+rKP
javascript に変換してくれる
javascript をベースとしない言語を作ってくれればいいのに
何で Typescript はjavascript のだめな部分を採用するかなあ
0285デフォルトの名無しさん
垢版 |
2023/12/27(水) 16:09:42.74ID:tr4LC1TL
VSCode, node.js, webpack, babel で、TypeScript も出来る

Ruby on Rails 7 から、CDN から直接インポートするように変わった。
脱webpack/node.js で、esbuild へ変わった
0286デフォルトの名無しさん
垢版 |
2023/12/29(金) 20:15:59.53ID:zmYXdzDO
Nodeのサポート3年って期間自体は普通なんだが、JSのまま使うことって無くなってるから実質TS関連が安定するまでは捨て期間なんだよな
安定版で作り始めてリリースする頃にはもう期限切れ間近ってことが多くて体感のサポート期間がめっちゃ短く感じる
0289デフォルトの名無しさん
垢版 |
2024/03/17(日) 02:05:57.85ID:SEDAzzjE
TSがネイティブで動くブラウザを
MSは試験的に開発提供したら良いと思う。
TS-Edgeとかの名前で。
CDNから<script src="hoge.ts">を
読み込むだけで動く仕様。
0290デフォルトの名無しさん
垢版 |
2024/03/17(日) 10:14:57.42ID:M30p/Xa2
あんまり意味ない気がするな。
開発時のTAT改善なら今プロポーザル出してるType Annoatationsでも十分だろうし。
0291デフォルトの名無しさん
垢版 |
2024/03/27(水) 17:56:25.12ID:KuRRRRWB
型引数Tがnullを取るかどうかを判定する関数
function isNullable<T>(): boolean
みたいなのを作ろうとあれこれ調べてたけど
よく考えたら実行時に型情報持たないから無理な話よね
別のアプローチを考えねば
レスを投稿する


ニューススポーツなんでも実況