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/
探検
TypeScript part3
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2018/04/26(木) 21:48:23.07ID:mMDBzDaB975デフォルトの名無しさん
2021/12/30(木) 20:05:16.00ID:zuTar3e4 >>972
構造的部分型もわかりにくいバグの温床だな
anyよりは全然マシだが
まあ楽なのは楽だよそれはわかる
ただ楽なのと安全でりかいしやすいのとは同じじゃないからね
typeは俺が言ったような真の意味で型安全を担保するための仕様
interfaceは構造的部分型でサボるための仕様
こう使い分ければよかったんだろうな
構造的部分型もわかりにくいバグの温床だな
anyよりは全然マシだが
まあ楽なのは楽だよそれはわかる
ただ楽なのと安全でりかいしやすいのとは同じじゃないからね
typeは俺が言ったような真の意味で型安全を担保するための仕様
interfaceは構造的部分型でサボるための仕様
こう使い分ければよかったんだろうな
976デフォルトの名無しさん
2021/12/30(木) 20:09:20.24ID:zuTar3e4977デフォルトの名無しさん
2021/12/30(木) 20:42:46.31ID:18t9WvJQ >>974
型さえあってりゃどんなライブラリも安全安心だと思っているのか……
型さえあってりゃどんなライブラリも安全安心だと思っているのか……
978デフォルトの名無しさん
2021/12/30(木) 20:51:38.40ID:iK2C+Pgo >>977
ちゃんと読めてます?
「信用できない領域がグッと減る」って書いてあるでしょ?
型安全であれば全てが安全なんてことはない
これは常識
でも型安全ならそうでない場合に比べて大部分が安全になる
これも常識
そしてTSは一見すると型安全であるかのように見えるけれど
型が簡単に嘘をつける言語仕様のせいで実は型安全ではなく安全でない言語である
これが私の主張
よく読んでね
ちゃんと読めてます?
「信用できない領域がグッと減る」って書いてあるでしょ?
型安全であれば全てが安全なんてことはない
これは常識
でも型安全ならそうでない場合に比べて大部分が安全になる
これも常識
そしてTSは一見すると型安全であるかのように見えるけれど
型が簡単に嘘をつける言語仕様のせいで実は型安全ではなく安全でない言語である
これが私の主張
よく読んでね
979デフォルトの名無しさん
2021/12/30(木) 21:06:33.94ID:18t9WvJQ >>978
お、これは失敬
お、これは失敬
980デフォルトの名無しさん
2021/12/30(木) 21:26:07.36ID:XEA11GKy >>966
あんたの言う「型が嘘をつく」の意味がよくわからんが。オレオレ用語じゃなくて一般的な用語で説明してくれんかな。
>先も述べたようにJsonのパース、ApiのIO、DBのIO、野良ライブラリのIO
>疑わしい箇所が多すぎる
嘘をつくもなにも、JSONはそのJSON自体の構造以上の型を主張したりはしないが。
それを勝手に別の型と見做したとしたらそのコードの方に問題があるわけだろう。
あんたの言う「型が嘘をつく」の意味がよくわからんが。オレオレ用語じゃなくて一般的な用語で説明してくれんかな。
>先も述べたようにJsonのパース、ApiのIO、DBのIO、野良ライブラリのIO
>疑わしい箇所が多すぎる
嘘をつくもなにも、JSONはそのJSON自体の構造以上の型を主張したりはしないが。
それを勝手に別の型と見做したとしたらそのコードの方に問題があるわけだろう。
981デフォルトの名無しさん
2021/12/30(木) 21:31:50.13ID:XEA11GKy982デフォルトの名無しさん
2021/12/30(木) 21:32:15.17ID:yBt1j67p 型が嘘をつくってのは
コンパイル時に指定した型以外の値が入ってることがある
入れることが簡単にできるということ
type X = { foo: string }
function xxx(): X
例えば↑こういう定義があったとする
実際にxxx()の戻り値が文字列型のfooという属性を持っているかどうか?
それはソースコードを隅々まで読んで間違いないことを確認するまでわからない
コードはXという型はfooという文字列型の属性を持っていると主張しているわけだが実際にはそうでない場合がある
これを俺は型が嘘をついていると表現する
コンパイル時に指定した型以外の値が入ってることがある
入れることが簡単にできるということ
type X = { foo: string }
function xxx(): X
例えば↑こういう定義があったとする
実際にxxx()の戻り値が文字列型のfooという属性を持っているかどうか?
それはソースコードを隅々まで読んで間違いないことを確認するまでわからない
コードはXという型はfooという文字列型の属性を持っていると主張しているわけだが実際にはそうでない場合がある
これを俺は型が嘘をついていると表現する
983デフォルトの名無しさん
2021/12/30(木) 21:33:00.94ID:yBt1j67p >>981
ちげーよ
ちげーよ
984デフォルトの名無しさん
2021/12/30(木) 21:36:23.80ID:yBt1j67p JavaやC#ではこういう事は起こらない
正確には低レベルAPIでメモリを不正に書き換えれば起こせるが無理すれば起こせないこともないと言った程度
JavaやC#ではXがfooという文字列型の属性を持っていてxxxの戻り値の型がXであると書いてあったらそれを信用していい
JavaやC#は型が嘘をつかないからだ
正確には低レベルAPIでメモリを不正に書き換えれば起こせるが無理すれば起こせないこともないと言った程度
JavaやC#ではXがfooという文字列型の属性を持っていてxxxの戻り値の型がXであると書いてあったらそれを信用していい
JavaやC#は型が嘘をつかないからだ
985デフォルトの名無しさん
2021/12/30(木) 21:37:07.94ID:XEA11GKy986デフォルトの名無しさん
2021/12/30(木) 21:39:39.80ID:rc2c+xCv >>985
本当に恥ずかしいからお前はもう黙ってろ
本当に恥ずかしいからお前はもう黙ってろ
987デフォルトの名無しさん
2021/12/30(木) 21:39:49.15ID:yBt1j67p >>985
しない
しない
988デフォルトの名無しさん
2021/12/30(木) 21:42:03.35ID:18t9WvJQ そんなにTSが嫌いならずっとJavaなりC♯なり使ってれば良いじゃん
989デフォルトの名無しさん
2021/12/30(木) 21:45:32.05ID:XEA11GKy >>987
コンパイルエラーにならない function xxx() の例よろ。
コンパイルエラーにならない function xxx() の例よろ。
990デフォルトの名無しさん
2021/12/30(木) 21:57:10.00ID:hxNkeOah991デフォルトの名無しさん
2021/12/30(木) 21:59:52.63ID:hxNkeOah992デフォルトの名無しさん
2021/12/30(木) 22:09:49.35ID:XEA11GKy993デフォルトの名無しさん
2021/12/30(木) 22:21:35.89ID:hxNkeOah >>992
そう
そう
994デフォルトの名無しさん
2021/12/30(木) 22:24:35.31ID:XEA11GKy じゃあ bugLib.getStringValueEvil() はどうやって嘘をついたわけ?堂々巡りだが。
995デフォルトの名無しさん
2021/12/30(木) 22:28:29.05ID:hxNkeOah996デフォルトの名無しさん
2021/12/30(木) 22:34:32.46ID:rc2c+xCv anyなんかから型変換する際にランタイムチェックを追加するオプションはあっていいとは思うがTypeScriptにとってのno goalだから無いのも仕方ない
型安全性だけに拘るならTypeScriptは適当じゃないのはそれはそう(そもそもがoptional typeでしかない)
他の要素も考慮すれば個人的には悪い選択肢じゃないのでJavaScriptよりはTypeScriptを選ぶけども(C#やJavaと比較するかは目的による)
型安全性だけに拘るならTypeScriptは適当じゃないのはそれはそう(そもそもがoptional typeでしかない)
他の要素も考慮すれば個人的には悪い選択肢じゃないのでJavaScriptよりはTypeScriptを選ぶけども(C#やJavaと比較するかは目的による)
997デフォルトの名無しさん
2021/12/30(木) 22:38:38.66ID:XEA11GKy ようはTypeScriptに限らず強い型付け以外全否定ってことかね
998デフォルトの名無しさん
2021/12/30(木) 22:56:16.20ID:XEA11GKy 次スレ立てるよ
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/
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/
999デフォルトの名無しさん
2021/12/30(木) 22:57:42.38ID:XEA11GKy TypeScript part4
https://mevius.5ch.net/test/read.cgi/tech/1640872622/
https://mevius.5ch.net/test/read.cgi/tech/1640872622/
1000デフォルトの名無しさん
2021/12/30(木) 23:01:37.83ID:chdQ4etC >>995
それって型指定のバグなわけで、バグを回避する為に他の言語でもソースコード全部読む必要あるのは変わらないのでは……
それって型指定のバグなわけで、バグを回避する為に他の言語でもソースコード全部読む必要あるのは変わらないのでは……
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1344日 1時間 13分 15秒
新しいスレッドを立ててください。
life time: 1344日 1時間 13分 15秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★5 [BFU★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- 「遺体、安倍、会いたい」👈逆から読んでみて [175344491]
- 【悲報】SANA、発言撤回拒否 [769931615]
- ジャーナリストがテレビで解説「台湾問題は高市総理から言ったのではなく、立憲民主が日本の対応可能能力を暴こうとしたから」 [359572271]
- 【悲報】トランプ聖帝「高市…さん…でしたっけ?」 [878970802]
- 嫌儲、復活 [377388547]
- 山上、死刑回避し減刑か 山上母の供述で一気に酌量ムードへ [804169411]
