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:mMDBzDaB2018/04/27(金) 06:45:07.76ID:UX/6tIio
>>1乙
2018/04/27(金) 09:24:36.34ID:BNvpvGEw
乙、、待っていたぜ
4デフォルトの名無しさん
2018/04/27(金) 17:49:53.89ID:ash3pEtl GJ
2018/05/05(土) 14:43:25.34ID:Hx/KX5JV
hoshu
6デフォルトの名無しさん
2018/05/06(日) 11:12:16.85ID:bNo7GvvW Hyperappのloggerの型定義ファイルってどこで手に入りますか?
7デフォルトの名無しさん
2018/05/06(日) 11:13:58.74ID:vA78yxDd 【マイトLーヤのTV出演】 『何の情報もないのか』 Wセイブ・ジ・アース″ 『むしろ人類は危ない』
http://rosie.5ch.net/test/read.cgi/liveplus/1525571623/l50
http://rosie.5ch.net/test/read.cgi/liveplus/1525571623/l50
2018/05/14(月) 20:40:19.77ID:ElOAQ/Hl
TSDoc - TypeScriptソースコードのドキュメント化フォーマット
https://www.infoq.com/jp/news/2018/05/tsdoc-format-announced
https://www.infoq.com/jp/news/2018/05/tsdoc-format-announced
9デフォルトの名無しさん
2018/05/23(水) 19:29:37.11ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
19LH5
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
19LH5
2018/06/01(金) 08:11:32.75ID:3a9sqoct
Announcing TypeScript 2.9
https://blogs.msdn.microsoft.com/typescript/2018/05/31/announcing-typescript-2-9/
https://blogs.msdn.microsoft.com/typescript/2018/05/31/announcing-typescript-2-9/
11デフォルトの名無しさん
2018/07/04(水) 22:39:11.44ID:gFgZc5FG 4BN
2018/07/07(土) 07:17:19.72ID:W+8CFE2I
TypescriptでReactを使用してますが、型定義がないReactのライブラリが多すぎて、大変ではないですか?
型定義があっても、古くて最新のライブラリと違ったりしてうんざりしてるんですが、みなさんは平気ですか?
型定義があっても、古くて最新のライブラリと違ったりしてうんざりしてるんですが、みなさんは平気ですか?
2018/07/07(土) 17:47:00.67ID:VPAckTLG
propsくらい自分で型定義してどうぞ
2018/07/09(月) 00:13:40.86ID:uCPaSCaV
ないよりか遙かにマシ、というスタンスでいた方がいい
何なら自分でtypedにコミットすべき
何なら自分でtypedにコミットすべき
2018/07/31(火) 14:30:07.10ID:hUeEeg0Y
Announcing TypeScript 3.0
https://blogs.msdn.microsoft.com/typescript/2018/07/30/announcing-typescript-3-0/
https://blogs.msdn.microsoft.com/typescript/2018/07/30/announcing-typescript-3-0/
2018/08/02(木) 20:54:21.86ID:h7+cZz4a
FacebookはReactの開発をTypescriptで行わない理由として、Flowの方が型が厳密だと言っているけど、
その辺、Typescript使いとしてはどう?
その辺、Typescript使いとしてはどう?
2018/08/02(木) 23:29:59.64ID:joScD/1f
んーとね
わかんない
わかんない
2018/08/03(金) 01:22:20.77ID:xgfpZ/vV
>>16
それ情報古くね?今はTypeScriptでも遜色ないし型情報が集まってるtsの方が優位
それ情報古くね?今はTypeScriptでも遜色ないし型情報が集まってるtsの方が優位
2018/08/04(土) 00:04:10.84ID:i6N4cmbB
でもTSは推論糞雑魚言語だよね
2018/08/04(土) 13:54:19.51ID:EUmm298h
型定義にそんなに悩む理由がわからん。
C#とPythonやって、Pythonは動的型付けなんだ、ですぐ慣れた。
jsの時だけ悩む理由がわからん。
推測するに、恐らくJava的な多人数による土方的開発法やってるからだろうと思う。
jsは少人数でアジャイルが基本でしょw
C#とPythonやって、Pythonは動的型付けなんだ、ですぐ慣れた。
jsの時だけ悩む理由がわからん。
推測するに、恐らくJava的な多人数による土方的開発法やってるからだろうと思う。
jsは少人数でアジャイルが基本でしょw
2018/08/04(土) 15:12:52.05ID:CIDYb54h
あと「小規模」な。
2018/08/04(土) 16:08:48.09ID:uVhwgvNs
型を理解できない低学歴にはTSの学習コストは高かろうな
まぁ、ずっとjQueryとかでウンコみたいな小規模LP作ってればいいんじゃないか?
まぁ、ずっとjQueryとかでウンコみたいな小規模LP作ってればいいんじゃないか?
2018/08/04(土) 16:44:42.65ID:EUmm298h
正直に言うと、Typescript使えると仕事の幅が広がるじゃんか。
あと何かカッコイイし(笑)
なるべく使った方が早く覚えるでしょ。
収入に直結するからそれだけ。
土方がどうとかは否定できない。
大人数だと事前に仕様をビシッと決めるから、型定義も仕様書に落とし込んでおかないといけない。
まあPerlやPythonではなんで型にこだわってる人いなかったのに、JavaScriptだけうるさいのかはよく分からないね。
自分はそれだけ世間の本気度が高い証拠なんだろうと勝手に解釈しているよ。
あと何かカッコイイし(笑)
なるべく使った方が早く覚えるでしょ。
収入に直結するからそれだけ。
土方がどうとかは否定できない。
大人数だと事前に仕様をビシッと決めるから、型定義も仕様書に落とし込んでおかないといけない。
まあPerlやPythonではなんで型にこだわってる人いなかったのに、JavaScriptだけうるさいのかはよく分からないね。
自分はそれだけ世間の本気度が高い証拠なんだろうと勝手に解釈しているよ。
2018/08/04(土) 16:50:42.07ID:YdqNX3ax
2018/08/04(土) 17:06:43.23ID:uVhwgvNs
perlはただのゴミ
pythonはTypeHinting導入されたぞ
そんなことも知らないのか(呆れ、嘲笑、溜息)
pythonはTypeHinting導入されたぞ
そんなことも知らないのか(呆れ、嘲笑、溜息)
2018/08/04(土) 18:35:06.39ID:n184/BRZ
本来スクリプト言語は動的型付で良い。
ただJavaScriptは近年汎用性を増して、一般的なスクリプト言語の域から超越しつつある。
TypeScriptはJavaScriptを本格的なシステム開発言語に昇格させる為の試みの一つ。
ただこれは諸刃の刃でもあり、JavaScriptがスクリプト言語から卒業したら、第二のJavaと変わらない。
意外とそれを望んでる奴は多いかもな。
静的型付などBASICから実装されていたのだから、昔に戻ったと言う事だ。
ただJavaScriptは近年汎用性を増して、一般的なスクリプト言語の域から超越しつつある。
TypeScriptはJavaScriptを本格的なシステム開発言語に昇格させる為の試みの一つ。
ただこれは諸刃の刃でもあり、JavaScriptがスクリプト言語から卒業したら、第二のJavaと変わらない。
意外とそれを望んでる奴は多いかもな。
静的型付などBASICから実装されていたのだから、昔に戻ったと言う事だ。
2018/08/04(土) 18:45:31.78ID:uVhwgvNs
漸進的型付けの目指すところは、Javaの古臭い型とは異なるし、その認識は間違っている
土方だの言ってる馬鹿は論外
土方だの言ってる馬鹿は論外
28デフォルトの名無しさん
2018/08/04(土) 18:47:10.99ID:LcV/uUAN Dartってどこいったん?どうなっとるん?
29デフォルトの名無しさん
2018/08/04(土) 18:58:23.17ID:RkzMVTpt jQueryみたいなのつかってるヴァカが騒いでいるんだろう
あんなもの使わないといけないなら、要件定義がそもそも間違えている。
TypeScriptも使えないヴァカは存在価値がない。
俺らは土方じゃなくて、プログラミングの職人なんだよ。
私大文系のヴァカはおとなしくエクセルでもいじってろよ
あんなもの使わないといけないなら、要件定義がそもそも間違えている。
TypeScriptも使えないヴァカは存在価値がない。
俺らは土方じゃなくて、プログラミングの職人なんだよ。
私大文系のヴァカはおとなしくエクセルでもいじってろよ
2018/08/04(土) 19:06:10.99ID:05jB8GFH
どうした?
急に盛り上がってきたな
急に盛り上がってきたな
2018/08/04(土) 19:20:43.60ID:YdqNX3ax
>>26
△ ただJavaScriptは近年汎用性を増して
○ ただ、ブラウザは近年汎用性を増して、それに付帯するプログラミング言語であるJavaScriptも
WebAssemblyもどうやらマジでやってるようだし、
実現した際にはJavaScriptも一つの選択肢にすぎない。
型あり、型推論、形無し言語を自由に選べるようになる。勿論Javaも含めて。
(というか本来Javaが機能していればWebAssemblyは不要だったはず)
俺自身はTSを使ってはいないのだが、
コンセプト的には「書きたいところだけ書ける型」のTSがいいと思うよ。
△ ただJavaScriptは近年汎用性を増して
○ ただ、ブラウザは近年汎用性を増して、それに付帯するプログラミング言語であるJavaScriptも
WebAssemblyもどうやらマジでやってるようだし、
実現した際にはJavaScriptも一つの選択肢にすぎない。
型あり、型推論、形無し言語を自由に選べるようになる。勿論Javaも含めて。
(というか本来Javaが機能していればWebAssemblyは不要だったはず)
俺自身はTSを使ってはいないのだが、
コンセプト的には「書きたいところだけ書ける型」のTSがいいと思うよ。
2018/08/04(土) 19:29:26.08ID:0Kx3qW8V
>>29
お前はマ版から出てくるな
>ヴァカに混じってJSをやる事になったのだが
>Angularのドキュメント書いた奴氏ねよ
>
>私大文系が格好付けてワザと分かりにくく書いてるだろ
>何言ってるのかさっぱりだわ
>
>ヴァカに文章かかせるなよ
Angular.jsの解説文も理解できない奴が何言ってんだよ
お前はマ版から出てくるな
>ヴァカに混じってJSをやる事になったのだが
>Angularのドキュメント書いた奴氏ねよ
>
>私大文系が格好付けてワザと分かりにくく書いてるだろ
>何言ってるのかさっぱりだわ
>
>ヴァカに文章かかせるなよ
Angular.jsの解説文も理解できない奴が何言ってんだよ
2018/08/04(土) 22:37:51.13ID:uVhwgvNs
確かにヴァカだなぁ
解説文以前に、AngularはVue並のゴミなんだから
その指摘はあさってだわ
解説文以前に、AngularはVue並のゴミなんだから
その指摘はあさってだわ
2018/08/05(日) 03:29:49.87ID:CiziHO2r
Angularみたいなゴミに難しい解説付けてるのが悪い
私大文系のクズが自分らを偉そうに見せる為にやってんのがバレバレだ
ヴァーカは救いようがないな
俺は長年Java一筋だったが変数に型が無いのなどあり得ないわ
仕様書に型が書いてないなんて自分で型考えろとでも言うのか?
ジャップの甘ったれた屑SEにとって都合のいい話だよな
TypeScript良いじゃねーか
こちらは仕様書をコードに落とし込むのが仕事だ
設計は設計専門職がいて高い金もらってんだろ?
型はそいつらが考えるんだよ。詳細をプログラマーに丸投げしてる時点で屑仕様なんだよ。
ヴァーカ!
私大文系のクズが自分らを偉そうに見せる為にやってんのがバレバレだ
ヴァーカは救いようがないな
俺は長年Java一筋だったが変数に型が無いのなどあり得ないわ
仕様書に型が書いてないなんて自分で型考えろとでも言うのか?
ジャップの甘ったれた屑SEにとって都合のいい話だよな
TypeScript良いじゃねーか
こちらは仕様書をコードに落とし込むのが仕事だ
設計は設計専門職がいて高い金もらってんだろ?
型はそいつらが考えるんだよ。詳細をプログラマーに丸投げしてる時点で屑仕様なんだよ。
ヴァーカ!
2018/08/05(日) 11:04:59.08ID:56m811a+
こういう型が何なのかも知らんゲェジは型無し糞言語のウンポコペチプーで糞にまみれてろw
2018/08/05(日) 11:55:05.19ID:XJUWLe7Z
tsはcodeとセット感あるからideあってこその型付言語ですよ。
そういう意味で最高。
codeのExtension書けるしね
そういう意味で最高。
codeのExtension書けるしね
2018/08/05(日) 13:25:49.74ID:CiziHO2r
タイプスクリプトでVS Codeが最高。
たまに鉛筆と紙で手書きでコードかけると自称する奴いるけど、俺はそういう無理だし無駄だと思う。
コード補完機能が1番良い感じ。
たまに鉛筆と紙で手書きでコードかけると自称する奴いるけど、俺はそういう無理だし無駄だと思う。
コード補完機能が1番良い感じ。
2018/08/05(日) 15:04:53.13ID:/1jqsBrh
このスレの諸兄は普段どのような開発でTypeScriptを使っておられるのかな?
2018/08/05(日) 17:03:05.39ID:dEmbaIpR
2018/08/05(日) 19:56:12.53ID:9Ci45qXo
型の概念も分かってないバカがいっぱいいるようだし
俺の方が知識は上だ。
論破して相手が悔しがってるの想像すると楽しい。
こんなロートルな連中に負ける気はしない。
俺の方が知識は上だ。
論破して相手が悔しがってるの想像すると楽しい。
こんなロートルな連中に負ける気はしない。
41デフォルトの名無しさん
2018/08/06(月) 03:56:14.62ID:v2o4XMWR もうすぐ全てのjava有料になるからjvm系は絶滅するんじゃないの?
ざまぁwwww
俺が社会人になったら土方どもに色々教えたるよ
惨めな土方どもwww
ざまぁwwww
俺が社会人になったら土方どもに色々教えたるよ
惨めな土方どもwww
2018/08/06(月) 06:41:20.27ID:quUF03Tj
まってるよ
2018/08/06(月) 14:23:37.61ID:ODvV2Pda
こういう頭でっかちは社会に出てから潰されてニートになったりするからね。勉強会に参加して早めに鼻っ柱を折る経験をしといたほうが良い
2018/08/09(木) 12:54:45.59ID:GPWcQL0I
UWPアプリ開発でTypescript+Reactを使っているのは自分含めて数人だろうな。
2018/08/09(木) 20:30:43.93ID:WZIXbM0Y
アプリなら素直にC#で作れよ
jsプププ
jsプププ
2018/08/11(土) 06:17:13.28ID:EQiEGCLN
ブラウザのアドオンからネイティブアプリも含めてTypeScriptだけで大抵の事は出来る
2018/08/11(土) 07:43:59.64ID:reBAGRvU
>>44
詳しく。reactと相性良いよね
詳しく。reactと相性良いよね
2018/08/11(土) 11:07:17.59ID:w1WGostD
TypeScriptできる→俺凄い
ネトウヨ的DQN思考法
素直にC#使えばぁ〜
ネトウヨ的DQN思考法
素直にC#使えばぁ〜
2018/08/11(土) 16:29:42.87ID:i5Ehw0eD
c#でwebのフロントエンド書けないよね
2018/08/11(土) 17:07:22.55ID:OwpN8/EL
51デフォルトの名無しさん
2018/08/11(土) 17:58:24.09ID:HdyPScyr >>49
最近Blazorとかいう強引な技術が出てきてるぞ
最近Blazorとかいう強引な技術が出てきてるぞ
2018/08/12(日) 17:10:22.85ID:DMIMHrCZ
TypeScriptは折角ならC#と継承とかの書き方も統一して欲しかったなぁ
2018/08/12(日) 17:20:17.72ID:q2AjPHaY
Javascriptのフレームワークででかい顔w
Javaプログラマーからしたらお笑い種ですよ
ヴァカっぽくて笑える
Javaプログラマーからしたらお笑い種ですよ
ヴァカっぽくて笑える
2018/08/25(土) 06:30:24.41ID:xUwKoZHr
JavaScriptやらないでいきなりTypeScriptから勉強するのってアリ?
でもjQuery覚えようとしたらJSも勉強しなきゃならなんのよね
でもjQuery覚えようとしたらJSも勉強しなきゃならなんのよね
2018/08/25(土) 07:21:26.46ID:8VsPVu5p
つうか型システム以外はJavaScriptなんだから、TypeScriptを覚えることは普通にJavaScriptを覚えることにほぼ等しい
2018/08/25(土) 07:24:42.29ID:8VsPVu5p
特に最新のJavaScriptに変換すると、単純に型指定だけが無くなったものが出力されることが多くなったな
2018/08/25(土) 09:38:13.06ID:ROrdHzXZ
むしろtsから入った方がいいくらいだ
生のjsは危険
生のjsは危険
2018/08/25(土) 12:19:44.10ID:Buh9wu1g
俺もTypeScriptから学んだ口だ。
ライブラリの使い方とかvscodeが教えてくれるようになるからむしろjsを巣のまま学ぶより調子が良い
ライブラリの使い方とかvscodeが教えてくれるようになるからむしろjsを巣のまま学ぶより調子が良い
2018/08/25(土) 12:22:48.10ID:t7aLMQyu
ビルドするのめんどくさい
TypeScriptのままレスポンスを返して動くようにしてほしい
TypeScriptのままレスポンスを返して動くようにしてほしい
2018/08/25(土) 12:25:42.67ID:Buh9wu1g
つ ts-node
2018/08/25(土) 17:36:56.36ID:ImIAXjTG
Typescript からやるにも、良い書籍が無くない?
JavaScript の良い書籍で基礎学んでからTypescript やった方がわかりやすい気がする
JavaScript の良い書籍で基礎学んでからTypescript やった方がわかりやすい気がする
2018/08/25(土) 17:40:26.05ID:jwlstBYZ
書籍とか流れが速すぎて向いてないわ
最初にやる言語以外で言語を学ぶ目的で書籍買うなんてC/C++くらいだろ
最初にやる言語以外で言語を学ぶ目的で書籍買うなんてC/C++くらいだろ
6354
2018/08/25(土) 17:50:12.22ID:xUwKoZHr そこまで変わらないのね 安心
tsから学んでみます
皆さん教えてくれてありがとう〜
tsから学んでみます
皆さん教えてくれてありがとう〜
2018/08/25(土) 19:03:42.73ID:hQEFe9I2
TypeScriptに __LINE__ マクロみたいな行番号埋め込む機能ってないよね?
デバッグ用にあったら良かったんだけど。
デバッグ用にあったら良かったんだけど。
2018/08/25(土) 23:06:49.80ID:/7rCFVoA
2018/08/26(日) 11:46:26.97ID:m2nYH45u
Effectiveは確かに読む意味がある本だわ
でもそれJavaScript既に知ってる人間が読む本だろ
でもそれJavaScript既に知ってる人間が読む本だろ
2018/08/26(日) 13:10:52.02ID:yJfbxE3G
effは時代遅れ
tsやってりゃ半分は知る必要も無い
tsやってりゃ半分は知る必要も無い
2018/08/26(日) 13:48:02.46ID:gb73y82y
tsそんなにいいかなぁ?
jQueryからvue、angularまで色々やってるけど、利点がよく分からないよ。
jQueryからvue、angularまで色々やってるけど、利点がよく分からないよ。
2018/08/26(日) 14:52:56.21ID:yJfbxE3G
そらjQueryからvue、angularなんて脇道に逸れた時代遅れのゴミ使ってるセンスのない、
ぼんやりしたボンクラにとっては、利点も糞も気付けないわなw
ぼんやりしたボンクラにとっては、利点も糞も気付けないわなw
2018/08/26(日) 15:09:29.33ID:zw53fmop
angularは1系とか触ってたん?
今はtsで書かれてるはずだからts必須みたいなもんでわ?
今はtsで書かれてるはずだからts必須みたいなもんでわ?
71デフォルトの名無しさん
2018/08/27(月) 18:38:54.97ID:Q4eMB8Ps オワコンω
ウェブ業界に激震、全てのAndroid端末でJavaScriptが標準無効化、jsなしに作り直さないとGoogle村八分
https://hayabusa9.5ch.net/test/read.cgi/news/1535358006/
ウェブ業界に激震、全てのAndroid端末でJavaScriptが標準無効化、jsなしに作り直さないとGoogle村八分
https://hayabusa9.5ch.net/test/read.cgi/news/1535358006/
2018/08/27(月) 19:16:34.54ID:nPk8x20U
マジならXamarin大勝利ですやん
2018/08/27(月) 19:20:05.06ID:3J2b9jYp
2018/08/28(火) 10:52:54.37ID:ejsnz9b5
TSの標準化はGoogle社内の話で、Android関係なくね?
2018/08/28(火) 17:26:54.93ID:fGjEV9Ei
TypeScript and Babel 7
https://blogs.msdn.microsoft.com/typescript/2018/08/27/typescript-and-babel-7/
https://blogs.msdn.microsoft.com/typescript/2018/08/27/typescript-and-babel-7/
2018/08/29(水) 17:32:18.35ID:d2bEpQya
みんなBabelがTS対応になってうれしい?
2018/08/29(水) 21:38:11.08ID:WBp+gbgf
別に。何も変わらん。
諸事情でバベってるのにFlowも入れてないゴミどもは
最新のバベルなんて使わないし使えないだろうから相変わらずコヒースクリプト(爆)みたいな生カスジャバスクだし
既にTS使ってる奴らはTSだし
何も変わらん。
諸事情でバベってるのにFlowも入れてないゴミどもは
最新のバベルなんて使わないし使えないだろうから相変わらずコヒースクリプト(爆)みたいな生カスジャバスクだし
既にTS使ってる奴らはTSだし
何も変わらん。
78デフォルトの名無しさん
2018/09/19(水) 23:22:13.98ID:k2lJKoIo age
2018/09/20(木) 22:57:46.62ID:Pf20cirP
今さらドヤ顔でゆるいルール厳しいチェックとか言ってるのくそむかつく
厳しいルールが今まで普通だったのは
アバウトなのを許したらめちゃくちゃなのを差し込んで意図的に環境破壊していく会社がいたからだ
てめーらだけ安全地帯だからって
厳しいルールが今まで普通だったのは
アバウトなのを許したらめちゃくちゃなのを差し込んで意図的に環境破壊していく会社がいたからだ
てめーらだけ安全地帯だからって
2018/09/29(土) 08:06:57.10ID:o2k5LxC2
Announcing TypeScript 3.1
https://blogs.msdn.microsoft.com/typescript/announcing-typescript-3-1/
https://blogs.msdn.microsoft.com/typescript/announcing-typescript-3-1/
2018/09/29(土) 21:52:21.84ID:suMMT2j4
早く世の全てのJSプロジェクトがTSになりますように
2018/09/30(日) 02:33:19.53ID:yrJA2uB2
>>51
めちゃくちゃ重くてスマホではまず動かないレベルってんじゃなかったっけ?
めちゃくちゃ重くてスマホではまず動かないレベルってんじゃなかったっけ?
8354
2018/10/04(木) 22:31:58.31ID:B6XYHrci importは他ファイルのクラスを持って来れるようにするのよね
@xxxxxのデコレータの役割がわからないのだけど誰か教えてくれんかね・・・
「付加情報をclassやmethod等に付与するための仕組み」ってなんぞ
Javaでいうアノテーションらしからそれも調べたけどわからない・・・^p^
@xxxxxのデコレータの役割がわからないのだけど誰か教えてくれんかね・・・
「付加情報をclassやmethod等に付与するための仕組み」ってなんぞ
Javaでいうアノテーションらしからそれも調べたけどわからない・・・^p^
2018/10/04(木) 22:43:24.09ID:hO6zdZTE
pythonのデコレタといっしょ
2018/10/18(木) 22:51:05.35ID:Rszm7VcT
TypeScriptでジェネリクスを使ったとき、C++でいうテンプレートの特殊化のようなことって
できないもんですかね?
function func<T>(x) でTがnumberとstringの場合とで別の処理ができたらいいんだけど。
できないもんですかね?
function func<T>(x) でTがnumberとstringの場合とで別の処理ができたらいいんだけど。
86デフォルトの名無しさん
2018/10/19(金) 02:55:24.30ID:iO0N1Qhu 型情報で実際に呼ぶ関数のオーバーロードの振り分けはできたりはしない
共用型 string | number を使えば string と number 以外の型は入らなくなる
実装部分は typeof arg === 'string' とかで分岐。返り値の型は推論される
推論が思ったようにいかなそうなら mapped type 使うなりオーバーロードの宣言を書いたりしても良い
共用型 string | number を使えば string と number 以外の型は入らなくなる
実装部分は typeof arg === 'string' とかで分岐。返り値の型は推論される
推論が思ったようにいかなそうなら mapped type 使うなりオーバーロードの宣言を書いたりしても良い
2018/10/19(金) 07:51:09.81ID:1EDOmnkE
ありがとう。やっぱりダメか。
> typeof arg === 'string'
Tがstringだったら'string'と比較するってのをやりたかった。
> typeof arg === 'string'
Tがstringだったら'string'と比較するってのをやりたかった。
2018/10/20(土) 14:25:59.55ID:QA1RjyY/
Typescriptのコンパイラのソースコードを見たが、
swicth文による条件分岐が乱用されていて美しいソースコードではなかった。
もっと良い設計があるはず。
swicth文による条件分岐が乱用されていて美しいソースコードではなかった。
もっと良い設計があるはず。
2018/10/20(土) 15:52:27.22ID:/P2yZ5ci
構文木のような構造には多態はうまくマッチしないんだよ
2018/10/20(土) 18:08:40.09ID:odoUcQpl
構文解析とか条件分岐(状態遷移)の塊だろ
状態遷移とかswitch文そのものだ
状態遷移とかswitch文そのものだ
2018/10/21(日) 15:12:34.19ID:N0iXX+FC
>>88
そう思うならお前が改善してプルリク送ってもいいのよ
そう思うならお前が改善してプルリク送ってもいいのよ
2018/10/21(日) 15:27:26.85ID:GSIJUR7C
2018/10/23(火) 18:43:56.54ID:+WvUI4qM
Typescriptのコンパイラのアルゴリズムは何ですか?
ソースコードを見たところ再帰下降解析らしいけど、それだと左再帰で問題が出るよね。
ソースコードを見たところ再帰下降解析らしいけど、それだと左再帰で問題が出るよね。
2018/10/23(火) 18:48:28.71ID:BSENAQfG
ハイクラスの俺様が就職したら低レベルの土方を蹴散らしす
2018/10/23(火) 19:39:38.93ID:f9dUVIKz
5chになってから急に自分の書き込みに誤植増えた
絶対何かある
絶対何かある
2018/10/23(火) 19:42:09.06ID:EVpcwrUE
就職してないのかよw
ハイクラスなら就職なんてしなくても学生の内から引く手あまただろ
または起業しろよ
ハイクラスなら就職なんてしなくても学生の内から引く手あまただろ
または起業しろよ
2018/11/07(水) 08:20:52.86ID:lnxFtwDW
今の職場でts+Vue.jsで作ってる案件があるんだけど、コードの肥大化と共に
型チェック付きのビルドに10分以上かかるようになっちゃって型チェックなしのヒルドに変更してしまってるんだけど
そういう事例って他のところにもある?
型チェック付きのビルドに10分以上かかるようになっちゃって型チェックなしのヒルドに変更してしまってるんだけど
そういう事例って他のところにもある?
2018/11/07(水) 08:56:34.35ID:+94YsfsL
世界でも有数の大規模ソフトウェアであるVSCodeがTypeScriptでビルドされている以上、
利用者のスキルの問題でしかないな
利用者のスキルの問題でしかないな
2018/11/07(水) 15:40:12.32ID:d0XTpm7T
まぁ、今どきVueを選んじゃう技術力・審美眼のないとこじゃしょうがないんじゃないか?
糞うるさいポンコツウインドウズXPとか使ってそう
糞うるさいポンコツウインドウズXPとか使ってそう
100デフォルトの名無しさん
2018/11/07(水) 16:13:39.60ID:mdwOvRGk React使いがよく言うよな。技術力&審美眼。
魔窟になってるのを技術力と言い換えて、そのアーキテクチャを美と言い換えるやつ。
魔窟になってるのを技術力と言い換えて、そのアーキテクチャを美と言い換えるやつ。
101デフォルトの名無しさん
2018/11/07(水) 19:54:03.59ID:ReL8stLA うちのプロジェクトもビルド時間5分なんでどうにかしたいなぁ。
makedepend+makeが欲しい。
makedepend+makeが欲しい。
102デフォルトの名無しさん
2018/11/07(水) 20:15:51.54ID:NQOj7Zqs >>98
それ可笑しくね?vscodeビルドしたことあるの?
それ可笑しくね?vscodeビルドしたことあるの?
103デフォルトの名無しさん
2018/11/07(水) 20:16:37.40ID:NQOj7Zqs >>99
mbp2017つかってる。メモリは8gbだけど
mbp2017つかってる。メモリは8gbだけど
104デフォルトの名無しさん
2018/11/07(水) 22:25:07.54ID:LyspAo2Z >>103
チャイニーズに尻尾振るガラパゴスVue民にはお似合いのゴミだなw
チャイニーズに尻尾振るガラパゴスVue民にはお似合いのゴミだなw
105デフォルトの名無しさん
2018/11/09(金) 18:28:02.99ID:npJX8Ub3 module と namespaceの使い分けは
どうやればいいの?
どうやればいいの?
106デフォルトの名無しさん
2018/11/09(金) 18:56:45.93ID:gzUh27KV 使い分けるものではない
moduleはnamespaceに置き換えられた
常にnamespaceを使用せよ
moduleはnamespaceに置き換えられた
常にnamespaceを使用せよ
107デフォルトの名無しさん
2018/11/09(金) 19:06:31.99ID:npJX8Ub3 >>106
了解
了解
108デフォルトの名無しさん
2018/11/10(土) 09:38:47.43ID:h5ltDNBL type と interface の使い分けは
どうやればいいの?
どうやればいいの?
109デフォルトの名無しさん
2018/11/11(日) 11:38:30.86ID:Cm/nwVcs >>108
ほぼ一緒だから気にしなくていい。
Typescriptの仕様書にも「非常に似ている」と書いてある。
ただ、interfaceは
inteface Point {
x:number:
}
interface Point {
y:number:
}
というようにプロパティの追加ができるが、typeはできない。それぐらいしか違いがない。
ほぼ一緒だから気にしなくていい。
Typescriptの仕様書にも「非常に似ている」と書いてある。
ただ、interfaceは
inteface Point {
x:number:
}
interface Point {
y:number:
}
というようにプロパティの追加ができるが、typeはできない。それぐらいしか違いがない。
110デフォルトの名無しさん
2018/11/11(日) 13:05:47.70ID:/+pk64i1 TSLintのデフォがtypeよりinterfaceを推してくるからとりあえずinterfaceにする事が多い
111デフォルトの名無しさん
2018/11/11(日) 14:07:03.02ID:R0IiHkaX >>110
これメンスだがtypeしか使えない機能なかったっけ?
これメンスだがtypeしか使えない機能なかったっけ?
112デフォルトの名無しさん
2018/11/11(日) 15:41:10.38ID:YkGULP39 交差型、共用体型を定義できるのはtypeだけだな。
113デフォルトの名無しさん
2018/11/11(日) 20:39:14.47ID:3jMJhmwM 例えば file1.tsを編集していて、バックアップとしてそのファイルを複製して
file1 - コピー.ts
を作ったとすると、関数名が重複していますみたいなエラーがダダダーと
出るんですが、どのように対策すれば良いでしょうか?
file1 - コピー.ts
を作ったとすると、関数名が重複していますみたいなエラーがダダダーと
出るんですが、どのように対策すれば良いでしょうか?
114デフォルトの名無しさん
2018/11/11(日) 20:52:52.31ID:B3f/927d 自分はいつもバックアップはfile1.ts.bakって付けてる。
115デフォルトの名無しさん
2018/11/11(日) 20:59:48.79ID:MG/LuDvG git使いなさい
116デフォルトの名無しさん
2018/11/11(日) 21:18:11.36ID:3jMJhmwM117デフォルトの名無しさん
2018/11/11(日) 21:29:24.04ID:MG/LuDvG 必要ないですよ
118デフォルトの名無しさん
2018/11/11(日) 21:29:49.74ID:cIalEm6/ gitにサーバが必要とか正気か
いいからとりあえずチュートリアルやってみろ
いいからとりあえずチュートリアルやってみろ
119デフォルトの名無しさん
2018/11/11(日) 21:42:32.66ID:3jMJhmwM >>118
チュートリアルどこにあるのよ?
チュートリアルどこにあるのよ?
120デフォルトの名無しさん
2018/11/11(日) 23:28:37.79ID:R0IiHkaX >>119
man git
で英語を読む
でも、君にはそんな技術も学も根性もなさそうだから、
やっぱりfile1 - コピー.ts.bak181110ってするのがいいと思うんだ。
いや君をバカにしてるわけではなくて。
猿は猿らしい生活をした方が幸せだと思うからさ。ね。
man git
で英語を読む
でも、君にはそんな技術も学も根性もなさそうだから、
やっぱりfile1 - コピー.ts.bak181110ってするのがいいと思うんだ。
いや君をバカにしてるわけではなくて。
猿は猿らしい生活をした方が幸せだと思うからさ。ね。
121デフォルトの名無しさん
2018/11/11(日) 23:59:28.42ID:cIalEm6/122デフォルトの名無しさん
2018/11/14(水) 23:56:36.53ID:aDOvGxXC 流石に不親切すぎる。猿でもわかるgitとか読むと良い
123デフォルトの名無しさん
2018/11/17(土) 15:07:14.11ID:BcZrVMNP TypeScript使うな。汚らわしい。
バカはバカらしくPHPでも使ってろゴミ。
バカはバカらしくPHPでも使ってろゴミ。
124デフォルトの名無しさん
2018/11/18(日) 12:08:33.81ID:uaqKqGAI 猿でも判るように書いたら人間に判らなくなりました
125デフォルトの名無しさん
2018/11/18(日) 13:48:19.18ID:pdwgi8hG 猿ですがわかりません
126デフォルトの名無しさん
2018/11/26(月) 23:24:03.84ID:uFKIPm3P elem.onclick = function () {
if (this.classList.contains('classA')) {
・・・
}
こんなコードを書くと、Visual StudioのTypeScriptで
エラー TS2339 (TS) プロパティ 'classList' は型 'GlobalEventHandlers' に存在しません。
と出るのですが、生成されるJavaScriptコード(上のコードを同じ)は問題無く実行出来る。
これは何故ですか?
if (this.classList.contains('classA')) {
・・・
}
こんなコードを書くと、Visual StudioのTypeScriptで
エラー TS2339 (TS) プロパティ 'classList' は型 'GlobalEventHandlers' に存在しません。
と出るのですが、生成されるJavaScriptコード(上のコードを同じ)は問題無く実行出来る。
これは何故ですか?
127デフォルトの名無しさん
2018/11/26(月) 23:28:58.28ID://9j39Lt あのさぁ…何のためにTypescript使ってんのよ…
128デフォルトの名無しさん
2018/11/26(月) 23:46:28.79ID:uFKIPm3P >>127
仕事で仕方なく
仕事で仕方なく
129デフォルトの名無しさん
2018/11/26(月) 23:49:14.79ID:S88o/5+S thisを使わないか、addEventListener使う
130デフォルトの名無しさん
2018/11/26(月) 23:57:01.52ID:S88o/5+S this: GlobalEventHandlers のところは this: thisじゃだめなのかな?
131デフォルトの名無しさん
2018/11/26(月) 23:59:28.47ID:RFi6oWGn アロー関数使うとかそういう話?
132デフォルトの名無しさん
2018/11/27(火) 02:25:43.08ID:7n6dok9k >>126
elemにちゃんと型(多分HTMLElement?)が指定されてればそんなエラー出ないぞ
elemにちゃんと型(多分HTMLElement?)が指定されてればそんなエラー出ないぞ
133デフォルトの名無しさん
2018/11/27(火) 09:47:55.32ID:riCGJi9o >>132
出るよ
出るよ
134デフォルトの名無しさん
2018/11/27(火) 09:56:31.77ID:riCGJi9o >>129
addEventListenerでも同じだろ
addEventListenerでも同じだろ
135デフォルトの名無しさん
2018/11/27(火) 10:22:11.47ID:AQW0OfN+ addEventListenerは要素ごとにシコシコ定義されていて、thisがその要素になっているのでOK
onclickとかはGlobalEventHandlersでmixin的に定義されていて、this: GlobalEventHandlersになっちゃってるのでNG
onclickとかはGlobalEventHandlersでmixin的に定義されていて、this: GlobalEventHandlersになっちゃってるのでNG
136デフォルトの名無しさん
2018/11/27(火) 10:37:58.94ID:riCGJi9o137デフォルトの名無しさん
2018/11/30(金) 10:49:11.23ID:jlBTh7S1 Announcing TypeScript 3.2
https://blogs.msdn.microsoft.com/typescript/2018/11/29/announcing-typescript-3-2/
https://blogs.msdn.microsoft.com/typescript/2018/11/29/announcing-typescript-3-2/
138デフォルトの名無しさん
2018/11/30(金) 11:28:27.90ID:atRGowE7 Eitherさん素敵
139デフォルトの名無しさん
2018/12/01(土) 10:07:51.30ID:7lSKHFDm ようやくEitherでホイサーできるTSがきたか
しかしleftrightとパタマチがないとダメやろこれ
しかしleftrightとパタマチがないとダメやろこれ
140デフォルトの名無しさん
2018/12/01(土) 10:12:04.48ID:7lSKHFDm よんだら、これEitherじゃなくホイサーだろ・・・
エラー処理強制できないEitherってナンジャー?
ゴミジャー
エラー処理強制できないEitherってナンジャー?
ゴミジャー
141デフォルトの名無しさん
2018/12/01(土) 18:12:50.09ID:qYhERqMT 宇宙に満ちている光を伝える媒質、だっけ。
142デフォルトの名無しさん
2018/12/01(土) 21:02:52.90ID:214oHlAj それはether
143デフォルトの名無しさん
2018/12/01(土) 21:38:50.33ID:qYhERqMT 旧盆に行われる沖縄の盆踊り、かな。
144デフォルトの名無しさん
2018/12/04(火) 20:53:43.14ID:iqna8FaP 通常、string と string | null は同等なんでVSCodeのポップアップでも | null は省略されるけど、
これを省略させないで表示する設定ってないのかな。
strictNullChecks 使ったら区別できなくて困った。
これを省略させないで表示する設定ってないのかな。
strictNullChecks 使ったら区別できなくて困った。
145デフォルトの名無しさん
2018/12/04(火) 21:39:51.76ID:O7AxfIIB 通常、string と string | null は同等じゃないです
146デフォルトの名無しさん
2018/12/04(火) 21:46:28.77ID:WLbw6NyA ""はnullじゃないぞ
147デフォルトの名無しさん
2018/12/05(水) 08:02:21.96ID:rsg3VEcH 他に困ってる人がいないってことは strictNullChecks 自体あまり使われてないのかな。
148デフォルトの名無しさん
2018/12/05(水) 09:20:27.07ID:B/THyK2J strictNullChecksは使ってるけどその困り方がよく分からないから具体的にどういうコードを書こうとした時に何が困るのか教えてくれるとありがたい
149デフォルトの名無しさん
2018/12/05(水) 14:47:23.52ID:2sSegHBZ 馬鹿には無理
150デフォルトの名無しさん
2018/12/05(水) 19:58:08.96ID:rsg3VEcH function f(): string | null {
if(Math.random() === 0) {
return null;
}
return 'abc';
}
function g(): string {
return 'abc';
}
const x = f();
const y = g();
VSCode で x や f() にマウスポインタを当ててポップアップで型を表示しても
string | null じゃなくて string としか表示されないんでこれを区別できるようにしたい。
if(Math.random() === 0) {
return null;
}
return 'abc';
}
function g(): string {
return 'abc';
}
const x = f();
const y = g();
VSCode で x や f() にマウスポインタを当ててポップアップで型を表示しても
string | null じゃなくて string としか表示されないんでこれを区別できるようにしたい。
151デフォルトの名無しさん
2018/12/05(水) 20:42:07.12ID:2r3P2eMd tsc --init しなさい
152デフォルトの名無しさん
2018/12/05(水) 20:43:39.84ID:kxOqR7S7 * プロジェクトルートにtsconfig.jsonはあるか
* tsconfig.jsonでstrictNullChecks或いはstrictが有効になっているか
* そもそもVSCodeでプロジェクトルートを開いているか
* tsconfig.jsonでstrictNullChecks或いはstrictが有効になっているか
* そもそもVSCodeでプロジェクトルートを開いているか
153デフォルトの名無しさん
2018/12/05(水) 20:51:32.34ID:rsg3VEcH なるほど、VSCode用のtsconfig.jsonを置いてやればいいってことか。ありがとう。
ビルド用のtsconfig.jsonは別の場所に置いてた。
ビルド用のtsconfig.jsonは別の場所に置いてた。
154デフォルトの名無しさん
2018/12/05(水) 20:57:46.26ID:kxOqR7S7 そりゃプロジェクトルートに無けりゃどういう原理で探してくるんだって話だ
155デフォルトの名無しさん
2018/12/05(水) 21:04:20.27ID:rsg3VEcH じゃなくて、VSCodeがtsconfig.jsonのビルドオプションに合わせて表示を変えているとは想像してなかった。
156デフォルトの名無しさん
2018/12/05(水) 21:10:24.13ID:kxOqR7S7 そもそもtscもtslintもプロジェクトルートのtsconfig.jsonなりtslint.jsonなり読むんだから・・・・・
157デフォルトの名無しさん
2018/12/05(水) 21:30:49.29ID:rsg3VEcH 各.tsに対してどのtslint.jsonが使われるかという認識はあったけど、
tslintもtsconfigを見てるのか。なるほど。
tslintもtsconfigを見てるのか。なるほど。
158デフォルトの名無しさん
2018/12/05(水) 21:32:49.41ID:kxOqR7S7 誤解を招く書き方だったから訂正しておくけどtslintはtsconfig.json読まんよ
159デフォルトの名無しさん
2018/12/21(金) 21:25:18.74ID:X6PhK/jL 今日は emitDeclarationOnly でd.tsだけ出力できることを発見した
160デフォルトの名無しさん
2018/12/22(土) 01:07:22.52ID:RH928dFE jap is crazy monkeys
161デフォルトの名無しさん
2018/12/24(月) 11:44:39.27ID:zyOojth7 拡張子だけ許せない
162デフォルトの名無しさん
2018/12/24(月) 11:56:09.60ID:JT2deTbq TransSexual
163デフォルトの名無しさん
2018/12/25(火) 02:39:04.38ID:atOE2BOw 動画と被ってる
164デフォルトの名無しさん
2018/12/31(月) 06:26:09.53ID:65rO9GPR rollup覚えた
165デフォルトの名無しさん
2019/01/10(木) 03:06:03.03ID:Zf9Oh0RM export as namespace が何をどうしてるのかさっぱりわからん
166デフォルトの名無しさん
2019/02/01(金) 09:17:10.17ID:Cg5cm39S Announcing TypeScript 3.3
https://blogs.msdn.microsoft.com/typescript/2019/01/31/announcing-typescript-3-3/
https://blogs.msdn.microsoft.com/typescript/2019/01/31/announcing-typescript-3-3/
167デフォルトの名無しさん
2019/02/14(木) 09:58:56.90ID:fCWwgaGu JavaScriptを勉強したことがないので、今からならどうせならとTypeScriptの方を身につけたいんだけど・・・・
これって先ずJavaScriptが出来ないことには実用にならないの?
これって先ずJavaScriptが出来ないことには実用にならないの?
168デフォルトの名無しさん
2019/02/14(木) 10:01:00.45ID:zQRRDS2s そうでもないんじゃない
169デフォルトの名無しさん
2019/02/14(木) 11:21:03.44ID:sZU59yH4 typescript は javascript の上位互換なのだから、ts やってるうちに js のことも勉強しなければならなくなる (特に、es5, es2015 とかのキーワードで)
言い換えれば、ts を勉強してれば js が出来るようになる
言い換えれば、ts を勉強してれば js が出来るようになる
170デフォルトの名無しさん
2019/02/14(木) 11:22:03.05ID:MlsuSDTj >>167
javascript9割以上+TypeScript追加仕様なんだからjsやらないなら使う意味ねえだろ
javascript9割以上+TypeScript追加仕様なんだからjsやらないなら使う意味ねえだろ
171デフォルトの名無しさん
2019/02/15(金) 00:32:30.89ID:UOWlr3Ch 正確にはTypeScript使ってるとJavaScriptの深い部分が気になってきて、最終的には自然とJavaScriptを勉強し始めてるよ
気にせずTypeScriptから始めれば良い
気にせずTypeScriptから始めれば良い
172デフォルトの名無しさん
2019/02/15(金) 19:47:15.67ID:iHivKYcL tsだけで理解できることをjsを経由する意味はないしむしろ型を考慮しないダーティーな解法を覚えさせられるだけ有害
173デフォルトの名無しさん
2019/02/15(金) 22:59:18.80ID:XxBbyQo/ tsの、ライブラリの95パー以上がjsなんだから
どうにもならん。
pythonの型アノテーションを
完全に付ける書き方に別言語名つけてるようなもんだ。
どうにもならん。
pythonの型アノテーションを
完全に付ける書き方に別言語名つけてるようなもんだ。
174デフォルトの名無しさん
2019/02/16(土) 16:31:11.68ID:HHyiFibH >>172
動的型は型を考慮しないと思ってんのはお前だけだ
JavaScriptの全ての変数に型は存在しているし目の前の変数の型を知らずにコーディングしてる奴なんていない
JavaScriptは実行時に型チェックして型の正しさを保証して、
TypeScriptは実行前に型チェックして型の正しさを保証するって違いだけだ
動的型は型を考慮しないと思ってんのはお前だけだ
JavaScriptの全ての変数に型は存在しているし目の前の変数の型を知らずにコーディングしてる奴なんていない
JavaScriptは実行時に型チェックして型の正しさを保証して、
TypeScriptは実行前に型チェックして型の正しさを保証するって違いだけだ
175デフォルトの名無しさん
2019/02/16(土) 16:54:05.42ID:sYjKK7tj 作ってる時に頭の中にある型なんか、作った後には何の意味もないし、実行時に型チェックするなんて馬鹿の極み
176デフォルトの名無しさん
2019/02/16(土) 16:59:02.66ID:bRo2S9Sl つ外部入力データ
177デフォルトの名無しさん
2019/02/16(土) 18:28:18.38ID:HHyiFibH178デフォルトの名無しさん
2019/02/16(土) 18:29:05.39ID:STqQL4YT jsのboolの型チェックはバグあるけどな
179デフォルトの名無しさん
2019/02/16(土) 18:59:44.19ID:qw78JFeM >>177
保守する人には作ってる人の意図はわからないって意味だよ
保守する人には作ってる人の意図はわからないって意味だよ
180デフォルトの名無しさん
2019/02/16(土) 19:03:19.63ID:qw78JFeM 動的のつらみはrubyとかjavascriptで散々通ってきてtypescriptに行き着くわけだけど、
まだそこを通過中の人とは話が噛み合わないんだよなあ
結局こっちに来ることになるのに
まだそこを通過中の人とは話が噛み合わないんだよなあ
結局こっちに来ることになるのに
181デフォルトの名無しさん
2019/02/16(土) 19:28:50.73ID:HHyiFibH TypeScriptにUnion型がある時点で最早動的型と言ってもいい
宣言したあとに離れた場所のコードを見ても、パッと見じゃどっちの型になってるかは分からないからね
宣言したあとに離れた場所のコードを見ても、パッと見じゃどっちの型になってるかは分からないからね
182デフォルトの名無しさん
2019/02/16(土) 19:36:05.44ID:JPFBQxX7 any型もあるぞ
183デフォルトの名無しさん
2019/02/16(土) 19:38:44.73ID:qw78JFeM >>181
typescirptってそういうところもチェックしてくれるんだぞ
typescirptってそういうところもチェックしてくれるんだぞ
184デフォルトの名無しさん
2019/02/16(土) 21:04:52.10ID:czmkS5Li データ型と混同してない?
185デフォルトの名無しさん
2019/02/16(土) 21:15:59.20ID:dfsqwbBr 動的型の言語、結局人気が年々下落しはじめてる。
c#やtypescriptぐらいの、型あり基本で、
いざとなったら、部分的問わないのも、
自然で簡単に書ける、程度が今はよいな。
c#やtypescriptぐらいの、型あり基本で、
いざとなったら、部分的問わないのも、
自然で簡単に書ける、程度が今はよいな。
>>185
型を意識しない、というのは私には有用にみえます、ただし変数宣言は動的型言語にも必要だと思いますが、それを表立って採用している言語はありますかね…
型を意識しない、というのは私には有用にみえます、ただし変数宣言は動的型言語にも必要だと思いますが、それを表立って採用している言語はありますかね…
187デフォルトの名無しさん
2019/02/16(土) 21:54:57.88ID:aDxQaKE+ 言語の人気が年々移り変わる、
ということは、
いつかtypescriptも、ほかの型付き、部分的型付き言語の人気も、移り変わる、
とは、考えないのか?
ということは、
いつかtypescriptも、ほかの型付き、部分的型付き言語の人気も、移り変わる、
とは、考えないのか?
188デフォルトの名無しさん
2019/02/16(土) 23:06:35.69ID:xN2b9tEZ 動的ウンコガイジどもに型の有用性説いても、豚に真珠だろ
ペチプァやらルビ豚やら、あいつら中卒のガチゲェジだからな
ペチプァやらルビ豚やら、あいつら中卒のガチゲェジだからな
189デフォルトの名無しさん
2019/02/17(日) 16:04:02.49ID:D60SxZ1Q190デフォルトの名無しさん
2019/02/17(日) 16:11:02.99ID:YF9uE98b そんな誰でもわかってることで得意げになってるのが恥ずかしい
一合目で山に登ったつもりになってる感じ
みんなもっと上にいるから!
一合目で山に登ったつもりになってる感じ
みんなもっと上にいるから!
191デフォルトの名無しさん
2019/02/18(月) 11:46:04.18ID:+IiOz1o3 動的型と静的型では型の目的が違うことを理解していないらしいな
192デフォルトの名無しさん
2019/02/18(月) 23:46:52.94ID:tCwq3WHG 昔は動的型付け言語と静的型付け言語って対義語みたいに思ってたけど、
TypeScriptやってみたら単純な二元論じゃないって気付かされた。
TypeScriptやってみたら単純な二元論じゃないって気付かされた。
193デフォルトの名無しさん
2019/02/19(火) 21:50:14.71ID:UOAs3sqY そう対義語じゃない、分かりやすい表現だなぁ
本当に型が無いのはアセンブリ言語で、全てが整数になっててそれをどう解釈するかは本当に人間次第だからな
本当に型が無いのはアセンブリ言語で、全てが整数になっててそれをどう解釈するかは本当に人間次第だからな
194デフォルトの名無しさん
2019/02/20(水) 19:06:49.04ID:v7iPz90J Cのunionもそういう意味では何でもあり
195デフォルトの名無しさん
2019/02/20(水) 19:08:18.41ID:hK+DOQws そういうのを昔の人は「型あって型なし」と言ったのだ
196デフォルトの名無しさん
2019/02/21(木) 14:36:31.18ID:BCvd3Fow 同じファイルの書き込み処理なんかをRubyが5行で書けて、Javaが15行とかで書いて、いかにJavaが駄目かってブログ記事がはてなブックマークとかでよくバズってたな
声のでかい人はいつでもいる
声のでかい人はいつでもいる
197デフォルトの名無しさん
2019/02/22(金) 14:01:01.67ID:w8nQWD0s るbyなら一行で描かないと負け
198デフォルトの名無しさん
2019/02/23(土) 02:18:28.49ID:+i56xIDn Javascriptのthisというか変数スコープが厄介でHaxeやってるけど
Typescriptはその辺の問題点引き継いでる?
Typescriptはその辺の問題点引き継いでる?
199デフォルトの名無しさん
2019/02/23(土) 03:19:51.50ID:R2s6jSV3 「thisというか変数スコープ」?
分かってないことは分かった。
お前はどの言語やっても大成しない。
分かってないことは分かった。
お前はどの言語やっても大成しない。
200デフォルトの名無しさん
2019/02/23(土) 08:32:08.65ID:DQY5g4De JavaScript(JS)/TypeScript(TS) のthis は、おかしい!
一方、jQuery, Haxe は、それを修正してる
また、JS/TS の== は危険だから、使っちゃいけない!
厳密等価演算子=== を使うべき!
一方、Haxe, Ruby は、== でOK
Haxe には、マクロ、引数つき列挙(enum)、代数的データ型、パターンマッチ、マルチプラットフォームがあるけど、TS には無い。
特に、switch 文での、enum が強力!
引数の型で分岐できるから、インタフェースと同等!
このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/
Haxeプログラミング入門、尾野政樹、2015
Haxe は、Elixir に似てね?
プログラミングElixir、2016
一方、jQuery, Haxe は、それを修正してる
また、JS/TS の== は危険だから、使っちゃいけない!
厳密等価演算子=== を使うべき!
一方、Haxe, Ruby は、== でOK
Haxe には、マクロ、引数つき列挙(enum)、代数的データ型、パターンマッチ、マルチプラットフォームがあるけど、TS には無い。
特に、switch 文での、enum が強力!
引数の型で分岐できるから、インタフェースと同等!
このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/
Haxeプログラミング入門、尾野政樹、2015
Haxe は、Elixir に似てね?
プログラミングElixir、2016
201デフォルトの名無しさん
2019/02/23(土) 10:27:04.01ID:apHI25Q1 thisや==は今ならeslint/tslint任せでほとんど問題ないね。
引数付きenumはようはUnion Typeだし、代数的データ型はTagged Union Typeかな。
パターンマッチそのものはないけどType Guardで似たようなことができる。
マクロとマルチプラットフォームはさすがにないな。
引数付きenumはようはUnion Typeだし、代数的データ型はTagged Union Typeかな。
パターンマッチそのものはないけどType Guardで似たようなことができる。
マクロとマルチプラットフォームはさすがにないな。
202デフォルトの名無しさん
2019/02/23(土) 11:20:14.57ID:R2s6jSV3 haxe?ああtsに負けて滅んだ言語かw
203デフォルトの名無しさん
2019/02/23(土) 11:24:28.53ID:ks3X52WF 弊社、ガイジが導入したhaxeが完全な負の遺産化しててうんざりするわ
死ねとまでは思わないけど、産まれてこなければよかったのに
死ねとまでは思わないけど、産まれてこなければよかったのに
204デフォルトの名無しさん
2019/02/23(土) 11:27:21.05ID:rwRcja1T thisはそもそも使う必要がない
jQueryとか昔のライブラリを使うとthisを使わざるを得なくなって混乱する
変数スコープの問題は多分変数の巻き上げの事だと思うけど、TypeScriptは変数を宣言する前にアクセスはエラーだから変数スコープの問題は無い
jQueryとか昔のライブラリを使うとthisを使わざるを得なくなって混乱する
変数スコープの問題は多分変数の巻き上げの事だと思うけど、TypeScriptは変数を宣言する前にアクセスはエラーだから変数スコープの問題は無い
205デフォルトの名無しさん
2019/02/23(土) 12:07:09.04ID:Y+/6FGBc 言語でマルチプラットフォームってどゆこと?
206デフォルトの名無しさん
2019/02/24(日) 19:32:04.72ID:iK4D+UQi 一般にバイナリ互換のこと。
スクリプト言語はソースコード=バイナリ扱いだが。
Qtとかのライブラリはソース互換やね。
そのライブラリと標準ライブラリ使う分にはマルチプラットフォーム。
スクリプト言語はソースコード=バイナリ扱いだが。
Qtとかのライブラリはソース互換やね。
そのライブラリと標準ライブラリ使う分にはマルチプラットフォーム。
207デフォルトの名無しさん
2019/03/27(水) 22:29:10.88ID:ZMj2RB3N TypeScriptのリテラル型を知って目から鱗だったんだけど、元ネタってどこなのかな?
TypeScript以前に採用していた言語とかある?
TypeScript以前に採用していた言語とかある?
208デフォルトの名無しさん
2019/03/28(木) 08:22:20.68ID:XxNMz1Hs https://www.infoq.com/jp/news/2019/03/typescript-3-3-release
Flowは,少なくともこの分析を実施した1年前には,Facebookによって極めて閉鎖的な方法で進められていた言語です。
開発はまったく透過的ではなく,ロードマップも公開されていませんでした。
プロジェクトへのコントリビューションは,Facebook以外からはほとんどありませんでした。
対照的にTypeScriptは,数年前にGitHubに移動して以降はオープンソース開発を採用しています。
最新のロードマップを公開し,外部からのコントリビューションを受け入れ,全般的にコミュニティとの密接な関係を維持しています。
Flowオープンソースはほぼ放置されているので,現時点ではTypeScriptに切り替えた方がよいと思います。
このような懸念に対してFlowチームは,現在の進捗状況と2019年計画の見直しによる対処を始めている。
この概要の中で,FacebookのソフトウェアエンジニアであるAvik Chaudhuri氏は,FlowからTypeScriptへの移行について取り上げている。
最近,Facebookを起源とするオープンソースプロジェクトの多くが,TypeScriptでのリライト計画を発表しています。
Facebookでは個々のチームの独立性を強く尊重しており,各チームがロードマップを作成し,
開発中のプロダクトに対して最大限の努力を払っています。TypeScriptへの切り替えを決定したプロジェクトは,
この切り替えによって外部コントリビュータによる支援をより多く受けられるようになります。私たちはこの決定を尊重します。
Flowは,少なくともこの分析を実施した1年前には,Facebookによって極めて閉鎖的な方法で進められていた言語です。
開発はまったく透過的ではなく,ロードマップも公開されていませんでした。
プロジェクトへのコントリビューションは,Facebook以外からはほとんどありませんでした。
対照的にTypeScriptは,数年前にGitHubに移動して以降はオープンソース開発を採用しています。
最新のロードマップを公開し,外部からのコントリビューションを受け入れ,全般的にコミュニティとの密接な関係を維持しています。
Flowオープンソースはほぼ放置されているので,現時点ではTypeScriptに切り替えた方がよいと思います。
このような懸念に対してFlowチームは,現在の進捗状況と2019年計画の見直しによる対処を始めている。
この概要の中で,FacebookのソフトウェアエンジニアであるAvik Chaudhuri氏は,FlowからTypeScriptへの移行について取り上げている。
最近,Facebookを起源とするオープンソースプロジェクトの多くが,TypeScriptでのリライト計画を発表しています。
Facebookでは個々のチームの独立性を強く尊重しており,各チームがロードマップを作成し,
開発中のプロダクトに対して最大限の努力を払っています。TypeScriptへの切り替えを決定したプロジェクトは,
この切り替えによって外部コントリビュータによる支援をより多く受けられるようになります。私たちはこの決定を尊重します。
209デフォルトの名無しさん
2019/03/31(日) 08:32:04.33ID:9gmhFJUR Announcing TypeScript 3.4
https://devblogs.microsoft.com/typescript/announcing-typescript-3-4/
https://devblogs.microsoft.com/typescript/announcing-typescript-3-4/
210デフォルトの名無しさん
2019/04/27(土) 22:21:18.33ID:DaKsj35I export default Vue;
export as namespace Vue;
型定義が↑だとjsのスクリプトモード(import なし)で↓のようにvscode認識してしまって悲しい
new Vue(); // NG
new Vue.default(); // OK
export default Vue じゃなくて export = Vue なら大丈夫っぽいんだが
export as namespace Vue;
型定義が↑だとjsのスクリプトモード(import なし)で↓のようにvscode認識してしまって悲しい
new Vue(); // NG
new Vue.default(); // OK
export default Vue じゃなくて export = Vue なら大丈夫っぽいんだが
211デフォルトの名無しさん
2019/04/27(土) 23:00:39.62ID:f59bAkpS Vueなんてゴミ使ってるのが悪い
212デフォルトの名無しさん
2019/05/07(火) 14:32:47.27ID:L9HTQYS7 質問なんですが、
interface TypeMap<T> {
a: number
b: string
c: T
}
declare function test<T, K extends keyof TypeMap<T>>(arg: K): TypeMap<T>[K]
test("b")
test<number, "c">("c")
↑
これをtest<number>("c")って書けるfunction testの定義の仕方ってあります?
interface TypeMap<T> {
a: number
b: string
c: T
}
declare function test<T, K extends keyof TypeMap<T>>(arg: K): TypeMap<T>[K]
test("b")
test<number, "c">("c")
↑
これをtest<number>("c")って書けるfunction testの定義の仕方ってあります?
213デフォルトの名無しさん
2019/05/10(金) 03:36:53.56ID:lySswCnH ついにunion distributionを理解してしまった
214デフォルトの名無しさん
2019/05/20(月) 18:15:00.44ID:VITeHWYT TS3のunknown型いいな。
てかany入れずに最初からこれにしとけや。
てかany入れずに最初からこれにしとけや。
215デフォルトの名無しさん
2019/05/20(月) 23:15:37.00ID:F98TWhut esの上位互換である以上anyは無きゃいかんだろう。
216デフォルトの名無しさん
2019/05/22(水) 08:13:28.81ID:hKcnqksZ unknownからの簡単にキャストできるような値ばかりなら、確かにanyはいらんかったろうな
217デフォルトの名無しさん
2019/05/30(木) 08:25:00.89ID:nLvOZq4e Announcing TypeScript 3.5
https://devblogs.microsoft.com/typescript/announcing-typescript-3-5/
https://devblogs.microsoft.com/typescript/announcing-typescript-3-5/
218デフォルトの名無しさん
2019/05/31(金) 23:01:09.01ID:a9j+ivtb TSも知らんフロントエンドエンジニアとか死んでほしいわ
219デフォルトの名無しさん
2019/06/01(土) 00:45:31.22ID:MTpxg6Tq 知ってるだけでデカい顔してるフロントエンドエンジニアも死んで欲しいわ
220デフォルトの名無しさん
2019/06/01(土) 16:36:48.07ID:g95cx8x2 ts知ってるだけででかい面できるってどんな現場だよ
221デフォルトの名無しさん
2019/06/01(土) 19:04:47.55ID:+itGqD4a それくらい世界はまだJSの悲しみに満ちているってことさ
救ってあげようよ、僕らで
救ってあげようよ、僕らで
222デフォルトの名無しさん
2019/06/01(土) 19:52:58.38ID:4hNhVGGP お前だれだよ
223デフォルトの名無しさん
2019/06/01(土) 20:56:08.22ID:TTPVYQ4N strictNullChecksをtureにしてる人いる??
ロジックではnull禁止できるけどさ、
dbからgetしたデータに混じるんだよね。
未入力状態のデータって奴。
null撲滅マスターの方は、どう解決してるの??
ロジックではnull禁止できるけどさ、
dbからgetしたデータに混じるんだよね。
未入力状態のデータって奴。
null撲滅マスターの方は、どう解決してるの??
224デフォルトの名無しさん
2019/06/01(土) 20:58:48.44ID:+itGqD4a それはDBの設計が腐ってるし、unknown | null型なんだろ
ロジックが間違ってる
ロジックが間違ってる
225デフォルトの名無しさん
2019/06/02(日) 11:14:24.16ID:567ijWyR そもそも、実行時にnullやundefinedが混じるという話とstrictNullChecksに直接の関係はないだろ。
その中間のどこかで困っているんだろうけど、それがわからないとなんとも。
その中間のどこかで困っているんだろうけど、それがわからないとなんとも。
226デフォルトの名無しさん
2019/06/02(日) 11:38:18.31ID:nWi1j94r nullableなfieldをgetしたらそりゃnullableでしょ
227デフォルトの名無しさん
2019/06/05(水) 02:53:11.94ID:QtDGLGvu Visual Studio Code でAngularの勉強をしているのですが、
TypeScriptのthisがどこのコードを参照しているのかイマイチ理解できていません。
このthisをマウスオーバーしたら参照先のコードを表示してくれる拡張機能はありませんか・・・?
現状ですとthisにマウスオーバーをすると this:this と表示されます
TypeScriptのthisがどこのコードを参照しているのかイマイチ理解できていません。
このthisをマウスオーバーしたら参照先のコードを表示してくれる拡張機能はありませんか・・・?
現状ですとthisにマウスオーバーをすると this:this と表示されます
228デフォルトの名無しさん
2019/06/05(水) 08:05:19.27ID:a1ZirxB/ Angular自体糞だからやめとけ
229デフォルトの名無しさん
2019/06/05(水) 08:30:28.74ID:gaDZjJ4I vueをやるんだ
230デフォルトの名無しさん
2019/06/07(金) 22:14:26.23ID:GySnd9K9 みんな、質問。
TSって公式のスタイルガイド無いけど、
みんな何使ってる?
正直googleのは末尾カンマが受け付けない。。
TSって公式のスタイルガイド無いけど、
みんな何使ってる?
正直googleのは末尾カンマが受け付けない。。
231デフォルトの名無しさん
2019/06/07(金) 22:21:16.75ID:POgNcTtv prettierで終わり
受け付けないもクソもない
おまえのスタイルは全てクソで、prettierを信じろ
受け付けないもクソもない
おまえのスタイルは全てクソで、prettierを信じろ
232デフォルトの名無しさん
2019/06/10(月) 00:34:38.75ID:pNMWMTmc233デフォルトの名無しさん
2019/06/10(月) 07:11:15.54ID:s0ANUlh8234デフォルトの名無しさん
2019/06/10(月) 07:12:37.13ID:s0ANUlh8 semi: false,
だけは本当に極稀に問題になるから、設定しなくてもいい
目障りだから俺は設定するけどね
だけは本当に極稀に問題になるから、設定しなくてもいい
目障りだから俺は設定するけどね
235デフォルトの名無しさん
2019/06/13(木) 17:34:43.34ID:3ecrlnnk >>233, 234
ありがとう!試してみる!
ありがとう!試してみる!
236デフォルトの名無しさん
2019/06/15(土) 19:57:13.61ID:60xjKXFz const x = { a: 'b' };
この x の型は { a: string } になってしまうみたいだけど、 { a: 'b' } 型にする方法ってないんでしたっけ?
TypeScript 3.5です。
この x の型は { a: string } になってしまうみたいだけど、 { a: 'b' } 型にする方法ってないんでしたっけ?
TypeScript 3.5です。
237デフォルトの名無しさん
2019/06/15(土) 20:04:24.55ID:v9vM6Xqi const x: { a:'b' } = { a: 'b' };
238デフォルトの名無しさん
2019/06/15(土) 20:10:32.39ID:60xjKXFz const x = { a: 'b' as 'b' }; もいけるみたいだけど冗長だなぁ。
239デフォルトの名無しさん
2019/06/15(土) 20:14:03.78ID:LRsRofRH as const
240デフォルトの名無しさん
2019/06/15(土) 20:32:57.50ID:60xjKXFz >>239
ありがとう!これだ。
ありがとう!これだ。
241デフォルトの名無しさん
2019/06/15(土) 22:08:42.82ID:B5XNjjWA デフォルトで全部 as const にするオプションとかあればいいのに
242デフォルトの名無しさん
2019/06/21(金) 19:39:39.40ID:NhtzQec8 今日の疲れやばい
243デフォルトの名無しさん
2019/06/21(金) 19:42:13.96ID:NhtzQec8 anyを許すルールにするっつったら
「でもapiからくる値なら全て型定義できますよね?」
って言われたことにものすごい疲れた
完璧なappなんかねーんだよ!!!ってキレそうだったわ
「でもapiからくる値なら全て型定義できますよね?」
って言われたことにものすごい疲れた
完璧なappなんかねーんだよ!!!ってキレそうだったわ
244デフォルトの名無しさん
2019/06/21(金) 19:42:54.97ID:NhtzQec8 一生インターフェース書いてろ!
245デフォルトの名無しさん
2019/06/22(土) 13:59:29.40ID:cvRfxwEO そこでunkownですよ
246デフォルトの名無しさん
2019/06/22(土) 14:09:53.49ID:lgEn1aKj unknown確か途中で足されたよな。最初から入れとけおもた。
247デフォルトの名無しさん
2019/06/22(土) 15:50:14.82ID:cvRfxwEO みんあなはallow any 派?
248デフォルトの名無しさん
2019/06/22(土) 18:02:27.27ID:WCwRyrQC >>247
許容派です。
再帰処理とかをまともに型付してたら、辛すぎる。。
ちなみに
const arr = []
で、never[]型になるのがしんどい。
設定でany[]型にならないでしょうか・・?
許容派です。
再帰処理とかをまともに型付してたら、辛すぎる。。
ちなみに
const arr = []
で、never[]型になるのがしんどい。
設定でany[]型にならないでしょうか・・?
249デフォルトの名無しさん
2019/06/22(土) 20:42:33.24ID:vT6NYB6v 明示的に型を書けばいいじゃん
250デフォルトの名無しさん
2019/06/22(土) 22:04:34.45ID:1mmW7z7g てかリテラルの [] が never[] になんかなる?
251デフォルトの名無しさん
2019/06/23(日) 13:58:34.11ID:iaXcaTkq eslint が v6.0.0 になったら @typescript-eslint/parser が読み込めなくなった
とりあえず issue をみて ./node_modules/@typescript-eslint/parser/dist/parser.js で
require("eslint/lib/util/traverser")
↓
require("eslint/lib/shared/traverser")
でやり過ごしてる
とりあえず issue をみて ./node_modules/@typescript-eslint/parser/dist/parser.js で
require("eslint/lib/util/traverser")
↓
require("eslint/lib/shared/traverser")
でやり過ごしてる
252デフォルトの名無しさん
2019/06/24(月) 11:41:32.01ID:218UFAwP この研究によるとTypeScriptは最もバグ発生率が低い言語なんだけどその理由とか体感とかありますか?
https://web.cs.ucdavis.edu/~filkov/papers/lang_github.pdf
>TypeScript −1.32 (0.40)∗∗ −2.15 (0.98)∗ −1.34 (0.41)∗∗ −0.34 (0.07)∗∗∗
https://web.cs.ucdavis.edu/~filkov/papers/lang_github.pdf
>TypeScript −1.32 (0.40)∗∗ −2.15 (0.98)∗ −1.34 (0.41)∗∗ −0.34 (0.07)∗∗∗
253デフォルトの名無しさん
2019/06/24(月) 11:46:37.72ID:eHWTfFeZ コンパイラにバグが無い
コンパイル中にコードのバグは発見出来る
アルゴリズムのバグは知らんがな
コンパイル中にコードのバグは発見出来る
アルゴリズムのバグは知らんがな
254デフォルトの名無しさん
2019/06/24(月) 21:38:49.72ID:RR0ut14u TypeScriptで書いたプロダクトにバグが少ないのか、TypeScriptコンパイラにバグが少ないのか、どっちよ?
255デフォルトの名無しさん
2019/06/24(月) 21:39:48.85ID:RR0ut14u あと今土器pdfなんかで出すなよボケカス
日本語翻訳使えないだろが
日本語翻訳使えないだろが
256デフォルトの名無しさん
2019/06/24(月) 21:52:09.72ID:RR0ut14u TS >>> JS
という話なら圧倒的同意しかないのだが
https://www.reddit.com/r/typescript/comments/aofcik/38_of_bugs_at_airbnb_could_have_been_prevented_by/
他の言語と比べてどうこうはわからん
あと動的型無し糞言語がゴミというのも同意
という話なら圧倒的同意しかないのだが
https://www.reddit.com/r/typescript/comments/aofcik/38_of_bugs_at_airbnb_could_have_been_prevented_by/
他の言語と比べてどうこうはわからん
あと動的型無し糞言語がゴミというのも同意
257デフォルトの名無しさん
2019/06/25(火) 18:21:53.19ID:Cc6pu6kp258デフォルトの名無しさん
2019/06/25(火) 20:19:43.86ID:VFPzRDke C#と大して変わらんのにバグが少なくなるって根拠がよく分からん
JavaScript上がりのプログラマが使うことが多いから良く訓練されているってのが考えられる根拠だなw
JavaScript上がりのプログラマが使うことが多いから良く訓練されているってのが考えられる根拠だなw
259デフォルトの名無しさん
2019/06/25(火) 23:32:40.42ID:AQeJL9YJ ユーザのリテラシが高いが後押ししてるのはありえそうだな
phpあたりは言語もユーザもガイジだからかわいそう
phpあたりは言語もユーザもガイジだからかわいそう
260デフォルトの名無しさん
2019/06/26(水) 00:17:43.45ID:+9DnWsFD JavaScriptは初心者が触るには最悪の言語と言っても過言ではないないから、ありとあらゆるバグを出して大変な目に遭ったプログラマがTypeScriptを使うことになると、バグも少なくなるだろうなという意味だよ
261デフォルトの名無しさん
2019/06/26(水) 00:40:51.84ID:q5HP9tQR つか論文?の表の見方がわからんのだが
262デフォルトの名無しさん
2019/06/26(水) 00:41:37.75ID:q5HP9tQR よくよく読んだら、ほんとは一番バグが多かったとかいうオチ??
263デフォルトの名無しさん
2019/06/26(水) 00:45:17.97ID:f1MF/JvG スレッドがないとかポインタがないとかでできないことがある分バグも減るでしょ
264デフォルトの名無しさん
2019/06/26(水) 00:49:58.46ID:q5HP9tQR >>263
できないことだらけにしたGoさんはどうなりましたか・・・?
できないことだらけにしたGoさんはどうなりましたか・・・?
265デフォルトの名無しさん
2019/06/26(水) 09:13:51.70ID:qk5ECIA8 このスレの住人なら当然ターミナルはコレだよな!
Terminus - TypeScript製のターミナル
https://www.moongift.jp/2019/06/terminus-typescript%E8%A3%BD%E3%81%AE%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB
Terminus - TypeScript製のターミナル
https://www.moongift.jp/2019/06/terminus-typescript%E8%A3%BD%E3%81%AE%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB
266デフォルトの名無しさん
2019/06/26(水) 12:25:57.23ID:7Ob4FOl6 >>264
Web画面なんて壊れてても気にしないからコミット取り消さないし
そもそも画面実装とかサーバに比べて問題の範囲が限定的でたいして難しくないだろ
最初から扱ってる問題が言語ごとにちがうんだ
この表ってか論文で一緒にしてるのおかしい
あ、型なし言語はあかんと思います
Web画面なんて壊れてても気にしないからコミット取り消さないし
そもそも画面実装とかサーバに比べて問題の範囲が限定的でたいして難しくないだろ
最初から扱ってる問題が言語ごとにちがうんだ
この表ってか論文で一緒にしてるのおかしい
あ、型なし言語はあかんと思います
267デフォルトの名無しさん
2019/06/26(水) 16:21:39.07ID:b+WM9Si2 確かにCとかC++は基礎的なソフトに使われるから
僅かなバグも絶対に許されないとこありそう
それ以外にポインタ使ってるからってのもあるだろうけど
僅かなバグも絶対に許されないとこありそう
それ以外にポインタ使ってるからってのもあるだろうけど
268デフォルトの名無しさん
2019/06/29(土) 10:08:56.36ID:/kbU3u2K >>266
動画の新しいエンコーダ作るとか、プログラムじゃなくて数学のレベルを求められる仕事は置いといて、
webならフロントの方がよっぽど複雑じゃない?
バックなんて同期処理でお決まりのレールに乗ってダラダラ書いてくだけだし。
複雑でパフォーマンスが要求されるpwaとか、typescript無かったら絶対に完成する気しないわ。
カオス過ぎる
動画の新しいエンコーダ作るとか、プログラムじゃなくて数学のレベルを求められる仕事は置いといて、
webならフロントの方がよっぽど複雑じゃない?
バックなんて同期処理でお決まりのレールに乗ってダラダラ書いてくだけだし。
複雑でパフォーマンスが要求されるpwaとか、typescript無かったら絶対に完成する気しないわ。
カオス過ぎる
269デフォルトの名無しさん
2019/06/29(土) 10:25:06.32ID:Kp+ip4R/ js/tsだけどダイアログとか出すときに
モードレスにした方がユーザーには使い易いのに
バグが増えそうだからモードレス禁止ってことで
全部モーダルで造らされたことがある
モードレスにした方がユーザーには使い易いのに
バグが増えそうだからモードレス禁止ってことで
全部モーダルで造らされたことがある
270デフォルトの名無しさん
2019/06/29(土) 19:29:55.34ID:pedxXkW2 型の判定の正しい手順ってどうだっけ?5行目で引っかかってしまう。
function isMyType(o: unknown): o is MyType {
if (typeof o !== 'object') { return false; }
if (!o) { return false; }
if (!('key' in o)) { return false; }
if (!o.key) { return false; } // ts7053
return true;
}
function isMyType(o: unknown): o is MyType {
if (typeof o !== 'object') { return false; }
if (!o) { return false; }
if (!('key' in o)) { return false; }
if (!o.key) { return false; } // ts7053
return true;
}
271デフォルトの名無しさん
2019/06/29(土) 23:44:35.08ID:rJpz/Ysh ひえっ…
typescript使う意味あるのこれ
typescript使う意味あるのこれ
272デフォルトの名無しさん
2019/06/30(日) 01:10:38.25ID:7Llu84Qc そりゃTypeScriptだって魔法じゃないんだから。
すごいのは外部から渡された得体の知れない値をこうやって動的に型判定して
それを静的な型の世界に持ち込めるところ。
すごいのは外部から渡された得体の知れない値をこうやって動的に型判定して
それを静的な型の世界に持ち込めるところ。
273デフォルトの名無しさん
2019/06/30(日) 01:36:24.68ID:y+UHg1Q8 ts知らないけど処理系がロード済みの型一覧を取得できないの
274デフォルトの名無しさん
2019/06/30(日) 02:09:58.63ID:uFOYv7Ak unknownじゃなくてanyでいいでしょ
275デフォルトの名無しさん
2019/07/01(月) 22:30:11.88ID:VQESBdFl276デフォルトの名無しさん
2019/07/01(月) 23:18:57.13ID:yt2EFQVJ user defined type guard function でググれ。
277デフォルトの名無しさん
2019/07/02(火) 04:58:55.57ID:uMGeffjZ278デフォルトの名無しさん
2019/07/03(水) 22:40:20.89ID:HeNg6Q/2279デフォルトの名無しさん
2019/07/07(日) 08:52:11.33ID:eO4QC7Eh /* eslint-disable @typescript-eslint/explicit-function-return-type */
const mapDispatchToProps = (dispatch: TodoAsyncDispatch) => {
return {
fetchTodo: (id: TodoId) =>
dispatch(todoAsyncRequestActions.fetchTodoRequest({ id })),
}
}
/* eslint-enable */
type ReduxDispatchProps = ReturnType<typeof mapDispatchToProps>
---
これをeslint-disableなしで実装する方法ってないですか?
例えば、↓こんな感じで「any」の部分が「型推論させる型」みたいにできる、とか。
redux-thunkの型付けが難しいお・・・
---
type MDTP = (dispatch: TodoAsyncDispatch) => any
const mapDispatchToProps2: MDTP = (dispatch) => {
return {
fetchTodo: (id: TodoId) =>
dispatch(todoAsyncRequestActions.fetchTodoRequest({ id })),
}
}
type ReduxDispatchProps2 = ReturnType<typeof mapDispatchToProps2>
const mapDispatchToProps = (dispatch: TodoAsyncDispatch) => {
return {
fetchTodo: (id: TodoId) =>
dispatch(todoAsyncRequestActions.fetchTodoRequest({ id })),
}
}
/* eslint-enable */
type ReduxDispatchProps = ReturnType<typeof mapDispatchToProps>
---
これをeslint-disableなしで実装する方法ってないですか?
例えば、↓こんな感じで「any」の部分が「型推論させる型」みたいにできる、とか。
redux-thunkの型付けが難しいお・・・
---
type MDTP = (dispatch: TodoAsyncDispatch) => any
const mapDispatchToProps2: MDTP = (dispatch) => {
return {
fetchTodo: (id: TodoId) =>
dispatch(todoAsyncRequestActions.fetchTodoRequest({ id })),
}
}
type ReduxDispatchProps2 = ReturnType<typeof mapDispatchToProps2>
280デフォルトの名無しさん
2019/07/07(日) 09:34:19.15ID:z09Q0v8J その暗黙の推論を禁止するルールなんだから普通に考えたら無いよね。
型付けが難しい場合があるのはわかるけど、eslint-disableじゃだめな理由は?
全体として入れているチェックの例外を設けるなら後からその箇所がわかるように
しておかなきゃ困ると思うが。
型付けが難しい場合があるのはわかるけど、eslint-disableじゃだめな理由は?
全体として入れているチェックの例外を設けるなら後からその箇所がわかるように
しておかなきゃ困ると思うが。
281デフォルトの名無しさん
2019/07/07(日) 10:04:05.70ID:dCt2bUfG ジャネリック
282デフォルトの名無しさん
2019/07/07(日) 10:24:01.49ID:eO4QC7Eh >>280
型付け自体はそう難しくはないんだが、この2重定義感がだるくて。
mapDispatchToPropsに型ちゃんと書いてそこに集約したいというか。
---
type ReduxDispatchProps = {
fetchTodo: (id: TodoId) => Promise<void>
}
const mapDispatchToProps = (
dispatch: TodoAsyncDispatch
): ReduxDispatchProps => {
return {
fetchTodo: (id) =>
dispatch(todoAsyncRequestActions.fetchTodoRequest({ id })),
}
}
---
> eslint-disableじゃだめな理由
mapDispatchToProps は書く頻度が高いから、あまり eslint-disable を撒き散らしたくない
とはいえ普通の function で explicit-function-return-type を false にしたくない
というお気持ち
やっぱ無理ッスかね
型付け自体はそう難しくはないんだが、この2重定義感がだるくて。
mapDispatchToPropsに型ちゃんと書いてそこに集約したいというか。
---
type ReduxDispatchProps = {
fetchTodo: (id: TodoId) => Promise<void>
}
const mapDispatchToProps = (
dispatch: TodoAsyncDispatch
): ReduxDispatchProps => {
return {
fetchTodo: (id) =>
dispatch(todoAsyncRequestActions.fetchTodoRequest({ id })),
}
}
---
> eslint-disableじゃだめな理由
mapDispatchToProps は書く頻度が高いから、あまり eslint-disable を撒き散らしたくない
とはいえ普通の function で explicit-function-return-type を false にしたくない
というお気持ち
やっぱ無理ッスかね
283デフォルトの名無しさん
2019/07/07(日) 10:37:01.72ID:eO4QC7Eh >>281
どう書けばできそうですか?
どう書けばできそうですか?
284デフォルトの名無しさん
2019/07/07(日) 11:45:51.89ID:zsCaUS/w { allowExpressions: true }
285デフォルトの名無しさん
2019/07/07(日) 13:32:44.90ID:eO4QC7Eh >>284
既にこれで設定してます
---
"@typescript-eslint/explicit-function-return-type": [
"error",
{
allowExpressions: true,
allowTypedFunctionExpressions: true,
},
],
---
既にこれで設定してます
---
"@typescript-eslint/explicit-function-return-type": [
"error",
{
allowExpressions: true,
allowTypedFunctionExpressions: true,
},
],
---
286デフォルトの名無しさん
2019/07/10(水) 01:53:27.81ID:QsYN3Rs6 Nest.js使ってサーバサイドもts使ってる人いる?
287デフォルトの名無しさん
2019/07/17(水) 21:56:07.81ID:c89mzXrS むしろ整合性が求められるサーバーサイドでこそ活躍する
288デフォルトの名無しさん
2019/07/17(水) 23:22:52.24ID:ySrAQEz0 TSerならdenoでない?
289デフォルトの名無しさん
2019/07/17(水) 23:47:06.39ID:5ruk5Mj4 まだ早い
290デフォルトの名無しさん
2019/07/23(火) 23:09:48.66ID:vuRfx8Ta tslintが年内収束ってことなんでeslint移行を試しているが、まだ微妙に使いづらいな。
291デフォルトの名無しさん
2019/07/24(水) 12:05:38.50ID:CC3juVRq Svelte 試してるんだが TS にできない……
eslint-config-prettierがほぼ使用不可になるのもしんどい
eslint-config-prettierがほぼ使用不可になるのもしんどい
292デフォルトの名無しさん
2019/07/28(日) 15:31:08.83ID:o4KFBn8V vs2019に入れるときはどうしたらいいですか?
色々やってて、2017には入ったけど、HelloWorldが正しく動いてくれない。
色々やってて、2017には入ったけど、HelloWorldが正しく動いてくれない。
293デフォルトの名無しさん
2019/07/28(日) 16:16:00.92ID:9XfU9Gs7 悪いことは言わんからVSCodeにしとけ
それにTypeScriptはIDEにインストールするもんじゃなく、npmでインストールするただの1ライブラリだ
それにTypeScriptはIDEにインストールするもんじゃなく、npmでインストールするただの1ライブラリだ
294デフォルトの名無しさん
2019/07/28(日) 19:23:20.85ID:o4KFBn8V 検討してみます。
ありがとう。
ありがとう。
295デフォルトの名無しさん
2019/07/30(火) 20:33:12.19ID:+pfbQhET リテラル型からそのリテラルの値を作ることってできないんだっけか。
Record<Foo,boolean>の変数の初期値にReacord<Foo,false>の値が使えたらよかったんだが。
Record<Foo,boolean>の変数の初期値にReacord<Foo,false>の値が使えたらよかったんだが。
296デフォルトの名無しさん
2019/07/31(水) 01:05:45.62ID:LQAad41F 型情報から実行時インスタンスの値を変更は不可能
297デフォルトの名無しさん
2019/07/31(水) 22:29:00.76ID:FZL3ewwl 仕組み考えりゃ当たり前だよな
298デフォルトの名無しさん
2019/07/31(水) 22:36:31.70ID:79+NgejT tsはコンパイル後の結果に型情報は含まないというポリシーだけど、
そういう定数を埋め込むことはやろうと思えばできる話だろ。
そういう定数を埋め込むことはやろうと思えばできる話だろ。
299デフォルトの名無しさん
2019/08/27(火) 08:04:24.39ID:qSEEAuKd androidで使えるts用のeditorないかな
トランスパイルとかはメインの環境でやるからコーディングのための入力支援だけでも受けられるようなやつ
トランスパイルとかはメインの環境でやるからコーディングのための入力支援だけでも受けられるようなやつ
300デフォルトの名無しさん
2019/08/28(水) 02:28:02.83ID:SJjisg2m TermuxでVimにプラグイン
301デフォルトの名無しさん
2019/08/29(木) 08:30:46.67ID:jM/zWkNe Announcing TypeScript 3.6
https://devblogs.microsoft.com/typescript/announcing-typescript-3-6/
https://devblogs.microsoft.com/typescript/announcing-typescript-3-6/
302デフォルトの名無しさん
2019/09/05(木) 23:20:27.31ID:VPhKtGaJ tslintの"max-classes-per-file"のデフォルト値が1なんだけどこれどういう意味合いがあってこんな制限がかかってるの?
303デフォルトの名無しさん
2019/09/05(木) 23:30:25.75ID:Wj2GuKre Best practice is to keep each file limited to a single responsibility.
304デフォルトの名無しさん
2019/09/06(金) 08:25:08.20ID:yVtePnMR プロジェクトの規模が大きくなっても1ファイル1classって維持できるものなのか?
305デフォルトの名無しさん
2019/09/06(金) 14:16:54.22ID:2oSh/AAo tsファイルに
string型のnormalize('NFC')を
使おうとしたんだけど、エラーになる。
なんで?
string型のnormalize('NFC')を
使おうとしたんだけど、エラーになる。
なんで?
306デフォルトの名無しさん
2019/09/06(金) 19:54:40.86ID:XEN3PN1i プロジェクトが大きくなることとひとつのファイルに書くクラスの数が増えることとが結びつかないんだが
307デフォルトの名無しさん
2019/09/10(火) 22:41:19.05ID:KQIOq++N https://geekly.co.jp/column/cat-technology/1908_004/
>TypeScriptはクラスベースオブジェクト指向です。
こんな転職サイトのお世話にはなりたくない
>TypeScriptはクラスベースオブジェクト指向です。
こんな転職サイトのお世話にはなりたくない
308デフォルトの名無しさん
2019/09/10(火) 22:57:35.54ID:bRYQFbtI これはひどい
309デフォルトの名無しさん
2019/09/10(火) 23:33:47.24ID:A1/RuLsT バズワードに踊らされてるだけなのか、ツッコミどころてんこ盛りなのは置いておいて・・・
Geekly Media ライター
バスコ
最新の記事がXAMPPで草生えた
10年前からタイムスリップしてきたのか?
Geekly Media ライター
バスコ
最新の記事がXAMPPで草生えた
10年前からタイムスリップしてきたのか?
310デフォルトの名無しさん
2019/09/11(水) 10:05:57.98ID:3t6F0b74311デフォルトの名無しさん
2019/09/11(水) 20:26:00.45ID:P5SVRA88 TypeScriptはクラスベースでJavaScriptはプロトタイプベースって対比しているのは完全におかしい
クラス構文はただの糖衣構文で実態はプロトタイプベースだし、そもそもクラス構文はES2015にあるんだからJavaScriptもクラスベースという話になってしまう
クラス構文はただの糖衣構文で実態はプロトタイプベースだし、そもそもクラス構文はES2015にあるんだからJavaScriptもクラスベースという話になってしまう
312デフォルトの名無しさん
2019/09/11(水) 21:06:44.69ID:IEmfVi5w JavaScriptをプロトタイプベースのオブジェクト指向言語と言うべきではない
http://blog.anatoo.jp/entry/2015/05/05/163225
http://blog.anatoo.jp/entry/2015/05/05/163225
313デフォルトの名無しさん
2019/09/12(木) 02:40:31.86ID:hFthHt+S Haskellは最終的に再代入しまくりのCに変換される(出来る)けど、Haskellは純粋な関数型言語と言われている
オブジェクト指向言語の様に書けてその通りに動けば、オブジェクト指向言語と言える
TypeScriptが言語仕様を全く変えずにWebAssemblyにコンパイルされるようになっても、TypeScriptはプロトタイプベースと言い張るのか?
オブジェクト指向言語の様に書けてその通りに動けば、オブジェクト指向言語と言える
TypeScriptが言語仕様を全く変えずにWebAssemblyにコンパイルされるようになっても、TypeScriptはプロトタイプベースと言い張るのか?
314デフォルトの名無しさん
2019/09/12(木) 08:27:51.94ID:ome0ZpEu オブジェクト指向的な言語機能に関して言えばTypeScriptはJavaScriptと何ら変わりはないんだから
そのHaskellの例は思いっきり的外れというか牽強付会というか。
>TypeScriptが言語仕様を全く変えずにWebAssemblyにコンパイルされるようになっても、TypeScriptはプロトタイプベースと言い張るのか?
プロトタイプが動作しなくなるなら別だが、仕様をまったく変えないという前提なら何も変わらんだろ。
ところで、こんなこと言い張っていた奴なんて見当たらないが、
>TypeScriptはプロトタイプベース
もしかしてクラスベースを否定したらプロトタイプベースを主張していることにされちゃうんだろうか。
そのHaskellの例は思いっきり的外れというか牽強付会というか。
>TypeScriptが言語仕様を全く変えずにWebAssemblyにコンパイルされるようになっても、TypeScriptはプロトタイプベースと言い張るのか?
プロトタイプが動作しなくなるなら別だが、仕様をまったく変えないという前提なら何も変わらんだろ。
ところで、こんなこと言い張っていた奴なんて見当たらないが、
>TypeScriptはプロトタイプベース
もしかしてクラスベースを否定したらプロトタイプベースを主張していることにされちゃうんだろうか。
315デフォルトの名無しさん
2019/09/12(木) 16:14:58.14ID:y6P0yrLb TypeScriptはprototypeをいじくるようなコーディングは推奨してないだろ
型システムが破綻する
その時点でプロトタイプとは関係無い単なるオブジェクト指向言語なんだよ
最終的にどう動いてるか何て関係無い
Haskellの様にね
型システムが破綻する
その時点でプロトタイプとは関係無い単なるオブジェクト指向言語なんだよ
最終的にどう動いてるか何て関係無い
Haskellの様にね
316デフォルトの名無しさん
2019/09/14(土) 21:17:37.20ID:1MUQqrBS いやなんでそんな必死にその糞ガイジ記事を擁護したがるのかわからん
バスコ本人か?
ちゃんと頭のお薬飲めよ
バスコ本人か?
ちゃんと頭のお薬飲めよ
317デフォルトの名無しさん
2019/09/18(水) 08:52:01.19ID:F+0EZiKQ 知らなかったが、AssemblyScriptなんてあったのか。
既存のTypeScriptのコードがそのままコンパイルできるわけじゃなくて
文法だけが共通の別言語って感じだが。
既存のTypeScriptのコードがそのままコンパイルできるわけじゃなくて
文法だけが共通の別言語って感じだが。
318デフォルトの名無しさん
2019/09/18(水) 10:08:51.34ID:L8SHYgAR Ruby と Elixir みたいなもんか
https://mevius.5ch.net/test/read.cgi/tech/1565187727/
https://mevius.5ch.net/test/read.cgi/tech/1565187727/
319デフォルトの名無しさん
2019/09/18(水) 17:14:10.63ID:reuwXmQ7 ES5以前はともかく、今はPrototypeを意識することは全然ないな
ずっとJavaとかPHPだった人でも違和感なく始められると思う
ずっとJavaとかPHPだった人でも違和感なく始められると思う
320デフォルトの名無しさん
2019/09/18(水) 17:29:52.16ID:fmefOdth でまたまにうんこが顔を出す
321デフォルトの名無しさん
2019/09/18(水) 19:34:20.09ID:C/YNNC2j 3.7はなかなか楽しみな機能が盛りだくさん
322デフォルトの名無しさん
2019/09/18(水) 22:35:58.20ID:bp3ervLV asserts ええな
pipelineオペあくしろよ
pipelineオペあくしろよ
323デフォルトの名無しさん
2019/09/19(木) 10:29:52.30ID:Nwlz92FM Google、モバイル開発環境を加速するFlutter 1.9、プログラミング言語Dart 2.5リリース
https://news.mynavi.jp/article/20190912-893296/
Null安全も開発中だそうだし、そうなったら最強かもしれん
TSあやうし!
https://news.mynavi.jp/article/20190912-893296/
Null安全も開発中だそうだし、そうなったら最強かもしれん
TSあやうし!
324デフォルトの名無しさん
2019/09/19(木) 17:24:02.70ID:uX+yZZQn ksk
325デフォルトの名無しさん
2019/09/19(木) 22:29:49.45ID:XUz/FlZ3 >>323
すでにTSはNull安全なんですがそれは
すでにTSはNull安全なんですがそれは
326デフォルトの名無しさん
2019/09/19(木) 22:33:00.75ID:Q6kUj/r3 TypeScript 3.7 Iteration Plan
ttps://github.com/microsoft/TypeScript/issues/33352
- Optional Chaining
- Nullish Coalescing
- Assertion Signatures
- Recursive Type References
- ECMAScript Private Fields
- Top-Level await
つよい
ttps://github.com/microsoft/TypeScript/issues/33352
- Optional Chaining
- Nullish Coalescing
- Assertion Signatures
- Recursive Type References
- ECMAScript Private Fields
- Top-Level await
つよい
327デフォルトの名無しさん
2019/09/19(木) 22:50:14.26ID:SwC6FU08 >>326
Microsoftの本気
Microsoftの本気
328デフォルトの名無しさん
2019/09/19(木) 23:08:15.80ID:XUz/FlZ3 TSあやうし! (笑)
329デフォルトの名無しさん
2019/09/29(日) 01:47:49.36ID:DcYKtIGC330デフォルトの名無しさん
2019/10/04(金) 15:53:59.79ID:JXWhYfPM331デフォルトの名無しさん
2019/10/04(金) 21:06:33.10ID:btlbHhjd >>330
いや、必要なのはパッチじゃなくて、明示的なdeprecatedだろ。
MSは全ての官公庁に対して、blinkのブラウザーを強制させるべき。
ゴミ政治家じゃ無理なので、MSがやれ。
黒船代行料として10兆払っても惜しくない。
いや、必要なのはパッチじゃなくて、明示的なdeprecatedだろ。
MSは全ての官公庁に対して、blinkのブラウザーを強制させるべき。
ゴミ政治家じゃ無理なので、MSがやれ。
黒船代行料として10兆払っても惜しくない。
332デフォルトの名無しさん
2019/10/06(日) 16:12:20.74ID:GCn9yAhL Object の OR を自動判別ってできないのかな?
下のURLは、TypeScript Playgroundで書いてみたもの
規制で書き込めなかったから、お手数だが concat して開いてほしい
https://
bit.ly
/30Pw8K3
下のURLは、TypeScript Playgroundで書いてみたもの
規制で書き込めなかったから、お手数だが concat して開いてほしい
https://
bit.ly
/30Pw8K3
333デフォルトの名無しさん
2019/10/06(日) 16:44:47.50ID:9GzCvGAT そういうのは、{ type: 'Succeeded'; result: string }と{ type: 'Failed'; message: string } みたいにして、typeで分岐させるのが普通だけど、
if ('result' in resp) {} でもいけるよ
typescriptの型はただの構造でしかないことがわかれば理解できると思う
if ('result' in resp) {} でもいけるよ
typescriptの型はただの構造でしかないことがわかれば理解できると思う
334デフォルトの名無しさん
2019/10/06(日) 17:28:21.59ID:GCn9yAhL >>333
うおお、できた、ありがとう、感動、感謝、完璧です
うおお、できた、ありがとう、感動、感謝、完璧です
335デフォルトの名無しさん
2019/10/09(水) 01:40:28.94ID:5li6ycXf tsconfig.jsonでソースディレクトリの指定は
"include": [
"src/**/*"
]
と "compilerOptions":{
""rootDir": "./src",
のどっちが正しいのですか?
"include": [
"src/**/*"
]
と "compilerOptions":{
""rootDir": "./src",
のどっちが正しいのですか?
336デフォルトの名無しさん
2019/10/09(水) 07:36:48.39ID:ldi65x/b コンパイルできる方
マジレスすると上
rootDir って要らなくね?
マジレスすると上
rootDir って要らなくね?
337デフォルトの名無しさん
2019/10/26(土) 16:09:48.89ID:z1scFH36 もうeslintに移行しても大丈夫かな?
338デフォルトの名無しさん
2019/10/26(土) 16:20:08.49ID:A0XjOFSl もう3ヶ月前くらいに本番でeslint移行したが、全く問題なくてビビるぞ
339デフォルトの名無しさん
2019/11/06(水) 08:31:23.68ID:EkX1LXXs Announcing TypeScript 3.7
https://devblogs.microsoft.com/typescript/announcing-typescript-3-7/
https://devblogs.microsoft.com/typescript/announcing-typescript-3-7/
340デフォルトの名無しさん
2019/11/06(水) 08:52:02.60ID:sPTvbp9j ( ゚д゚)
_(__つ/ ̄ ̄ ̄/_
\/ /
きたか…!!
( ゚д゚ ) ガタッ
.r ヾ
__l_l / ̄ ̄ ̄/_
\/ /
( ゚д゚ ) スッ
_(__つ/ ̄ ̄ ̄/_
\/ /
_(__つ/ ̄ ̄ ̄/_
\/ /
きたか…!!
( ゚д゚ ) ガタッ
.r ヾ
__l_l / ̄ ̄ ̄/_
\/ /
( ゚д゚ ) スッ
_(__つ/ ̄ ̄ ̄/_
\/ /
341デフォルトの名無しさん
2019/11/06(水) 11:02:39.72ID:o3tEvZiY 1歩進んで2歩さがる
342デフォルトの名無しさん
2019/11/08(金) 14:35:13.79ID:vk2bSkbm Microsoft、組み込みデバイスをターゲットとしたTypeScriptの高速サブセット”Static TypeScript”を発表
https://www.infoq.com/jp/news/2019/11/static-typescript-msft-paper/
https://www.infoq.com/jp/news/2019/11/static-typescript-msft-paper/
343デフォルトの名無しさん
2019/11/08(金) 15:41:32.87ID:IHFsmiXW 神ってる
344デフォルトの名無しさん
2019/11/08(金) 21:30:00.92ID:tlySiByz >さらにSTSは、TypeScriptの型規則からも逸脱している。TypeScriptがクラスに構造的型付け(structural typing)を
>使用するのに対して、Static TypeScriptでは名前的型付け(nominal typing)を使用しているのだ。
TypeScriptの人気にあやかった別言語じゃね?
>使用するのに対して、Static TypeScriptでは名前的型付け(nominal typing)を使用しているのだ。
TypeScriptの人気にあやかった別言語じゃね?
345デフォルトの名無しさん
2019/11/09(土) 02:29:33.32ID:NblRK941 結局ただのC言語の亜種だろ
MSもそんな事をいちいちアピールしないといけないほど落ちぶれたか…
MSもそんな事をいちいちアピールしないといけないほど落ちぶれたか…
346デフォルトの名無しさん
2019/11/23(土) 10:38:33.96ID:1aAJfoMg TypeScriptはJSerへの強制型付けギプスだと思えばそこそこ優秀
いつまでもギプスつけた状態で満足するものではないのでそのうちRustなり別の静的型付けに移行する前提であれば賞賛できる
いつまでもギプスつけた状態で満足するものではないのでそのうちRustなり別の静的型付けに移行する前提であれば賞賛できる
347デフォルトの名無しさん
2019/11/23(土) 10:47:34.10ID:cqseOAmT TypeScriptはタイプ脳への強制補助輪だと思えばそこそこ優秀
いつまでも補助輪つけた状態で満足するものではないので
そのうち生JSなり別の動的型付けに移行する前提であれば賞賛できる
いつまでも補助輪つけた状態で満足するものではないので
そのうち生JSなり別の動的型付けに移行する前提であれば賞賛できる
348デフォルトの名無しさん
2019/11/23(土) 11:57:55.85ID:cBKKqL2b TypeScriptはタイプ脳への強制補助輪だと思え
ばそこそこ優秀いつまでも補助輪つけた状態で満足するものではないのでそのうち生JSなり別の動的
型付けに移行する前提であれば賞賛できる
ばそこそこ優秀いつまでも補助輪つけた状態で満足するものではないのでそのうち生JSなり別の動的
型付けに移行する前提であれば賞賛できる
349デフォルトの名無しさん
2019/11/23(土) 13:06:34.59ID:/aIGpl4m 型無し糞言語は死ねだと思え
動的糞言語はいつまでも糞でそのうち糞
糞糞糞
動的糞言語はいつまでも糞でそのうち糞
糞糞糞
350デフォルトの名無しさん
2019/11/30(土) 00:23:57.91ID:/MHIrz97 すみません
今までES5.1を使って来て、これから扱い易いと言われる
TypeScriptを学習しようと思うのですが
逆にTypeScriptの方がJavaScriptより
難易度高いと言う事はありませんでしょうか。
型は値に付く物で変数はそれへの参照、
prototypeはファンクションへの参照格納用プロパティ
Objectは可塑性のある便利な何かという感覚が身についています。
今までES5.1を使って来て、これから扱い易いと言われる
TypeScriptを学習しようと思うのですが
逆にTypeScriptの方がJavaScriptより
難易度高いと言う事はありませんでしょうか。
型は値に付く物で変数はそれへの参照、
prototypeはファンクションへの参照格納用プロパティ
Objectは可塑性のある便利な何かという感覚が身についています。
351デフォルトの名無しさん
2019/11/30(土) 05:04:50.08ID:TrAQa+kD vscodeといっしょに使えば、jsより楽
型エラーは全てTSが教えてくれる
型エラーは全てTSが教えてくれる
352デフォルトの名無しさん
2019/11/30(土) 08:52:48.62ID:5l2Zf0lZ >>350
型は値に付くというその感覚はそのままでいいよ。TypeScriptはそれに加えて
- それぞれの変数にどんな型の値が入るかコンパイラが調べてくれる
- それぞれの変数にどんな型の値が入ってほしいかプログラマが指定できる
- その両者に食い違いがないかどうかコンパイラがチェックする
というだけ。
型は値に付くというその感覚はそのままでいいよ。TypeScriptはそれに加えて
- それぞれの変数にどんな型の値が入るかコンパイラが調べてくれる
- それぞれの変数にどんな型の値が入ってほしいかプログラマが指定できる
- その両者に食い違いがないかどうかコンパイラがチェックする
というだけ。
353デフォルトの名無しさん
2019/11/30(土) 09:04:25.09ID:6ZWltqHp TSの機能を余す事なく使おうと思うと難易度高いけど
其処を目指す必要はない
其処を目指す必要はない
354350
2019/12/01(日) 22:23:36.97ID:THamb1cl ありがとうございます。
とりあえず tslint を緩めにしてやってみます。
とりあえず tslint を緩めにしてやってみます。
355デフォルトの名無しさん
2019/12/02(月) 06:56:16.59ID:mLOeT+PU TS初心者ですがお勧めの書籍ありませんか?webpackとかも合わせて勉強したいです。
356デフォルトの名無しさん
2019/12/04(水) 22:44:25.30ID:sxQF45hm interface A {
x: string;
}
a: A;
A.xの型(string)を取り出したい場合 typeof A.x じゃダメで typeof a.x ならいけたけど、
aみたいな変数を使わずに typeof A.x 相当のことってできないんだっけ?
x: string;
}
a: A;
A.xの型(string)を取り出したい場合 typeof A.x じゃダメで typeof a.x ならいけたけど、
aみたいな変数を使わずに typeof A.x 相当のことってできないんだっけ?
357デフォルトの名無しさん
2019/12/05(木) 07:17:39.55ID:mSvldXoX A['x']
358デフォルトの名無しさん
2019/12/05(木) 08:56:27.95ID:pFxixMvG なるほど。ブラケット記法って最近とんと使わなくなったけど、こんなところに使い道残ってたんだ。
359デフォルトの名無しさん
2019/12/21(土) 15:23:23.21ID:BSqycIZI 実践TypeScript - BFFとNext.js&Nuxt.jsの型定義、吉井 健文、2019/6/26
今まで、TS の本は、あまり無かったので買ってみた
入門者用の文法の説明が、130ページしかない。
残りの190ページが、各フレームワークへの対応
本屋で、他の本を見たら、
掌田津耶乃は、Node.js, Vue.js, React, Angular の本を出してるw
山田祥寛も、Vue.jsの本を出した
今まで、TS の本は、あまり無かったので買ってみた
入門者用の文法の説明が、130ページしかない。
残りの190ページが、各フレームワークへの対応
本屋で、他の本を見たら、
掌田津耶乃は、Node.js, Vue.js, React, Angular の本を出してるw
山田祥寛も、Vue.jsの本を出した
360デフォルトの名無しさん
2019/12/21(土) 15:40:03.75ID:BpSzdr8P vueは根本から型が腐ってるから使う必要なし
361デフォルトの名無しさん
2019/12/21(土) 19:32:06.97ID:MnINNRtE やっぱ React か
362デフォルトの名無しさん
2019/12/21(土) 22:14:02.68ID:K0kobvcw 日本人は馬鹿だからしょうがない。
世界的にはreactなのに、世界と同じものでは戦えないからなのか、日本ではvueを使おうとする
世界的にはreactなのに、世界と同じものでは戦えないからなのか、日本ではvueを使おうとする
363デフォルトの名無しさん
2019/12/24(火) 13:31:33.33ID:WgZ9RMXM 記述がスゲー長くなって見づらい
これって劣化javaみたいな記述にならない?
jsの良さが完全に死亡してる気が…
これって劣化javaみたいな記述にならない?
jsの良さが完全に死亡してる気が…
364359
2019/12/24(火) 13:53:39.03ID:3XzgnZW7 実践TypeScript を読んでるけど、TS の細かい挙動の怪しい所が多いから、
その例外的なルールの数を覚えるのが大変。
つまり、ハマる箇所を避けるのが大変
TS を学ぶと、Haxe の偉大さが分かる!
JavaScript のおかしい部分を修正しているから、かなりやりやすい
その例外的なルールの数を覚えるのが大変。
つまり、ハマる箇所を避けるのが大変
TS を学ぶと、Haxe の偉大さが分かる!
JavaScript のおかしい部分を修正しているから、かなりやりやすい
365デフォルトの名無しさん
2019/12/24(火) 21:47:34.41ID:j2uQerkx JSに良さなんてあったのか!?びっくりドンキー!
366デフォルトの名無しさん
2020/01/04(土) 19:44:33.72ID:pllwqfHK 3.7でECMA private field 使えないんだな。ガチのprivateはお預けかぁ
367デフォルトの名無しさん
2020/01/04(土) 19:55:56.50ID:Gwa4LI2s ECMA private fieldの必要性、全く感じないわ
368デフォルトの名無しさん
2020/01/16(木) 00:04:23.72ID:YIQKI70M ts拡張子のts動画との棲み分けってうまい方法あるかな?
369デフォルトの名無しさん
2020/01/17(金) 22:59:25.18ID:c8jQBH00 tsxにする
370デフォルトの名無しさん
2020/01/21(火) 10:46:46.65ID:YewYG19G ts-jestはテストのたびに*.test.tsをTypescriptからJavaScriptにコンパイルしてテストを実行しているのですか?
テストコードが変わらなくても、内部的にコンパイルしてるの?
それとも、tscコマンドでテストコードもコンパイルしてjsファイルに変換したら、それを利用してるの?
テストコードが変わらなくても、内部的にコンパイルしてるの?
それとも、tscコマンドでテストコードもコンパイルしてjsファイルに変換したら、それを利用してるの?
371デフォルトの名無しさん
2020/01/24(金) 09:42:02.04ID:apHhsOxs プロパティでyield のやりかたわからん。
get hoge : Generator<number,void,boolean> {
return (function* (){ yield 1; yield 2; yield 3; })();
}
とかでええの?
なんか get* hoge も *get hoge も get *hoge も怒られる。
get hoge : Generator<number,void,boolean> {
return (function* (){ yield 1; yield 2; yield 3; })();
}
とかでええの?
なんか get* hoge も *get hoge も get *hoge も怒られる。
372デフォルトの名無しさん
2020/01/24(金) 22:27:44.69ID:gpzJLuFb そもそも getter にジェネレータ記法はない
373デフォルトの名無しさん
2020/01/24(金) 23:21:56.15ID:pw14qEqb getterでそんな複雑なことをするんじゃあない・・・
374デフォルトの名無しさん
2020/02/24(月) 18:47:37.01ID:Av6u/PEd <Ts extends Array>(...args: Ts)=>
でTsの全ての型の交差型を返したいんだけど可能?
でTsの全ての型の交差型を返したいんだけど可能?
375デフォルトの名無しさん
2020/02/24(月) 23:10:15.02ID:dJSyQnEN Typescript: Retrieve element type information from array type - Stack Overflow
https://stackoverflow.com/questions/41253310/typescript-retrieve-element-type-information-from-array-type
Creating types from values in array ・ Issue #28046 ・ microsoft/TypeScript
https://github.com/microsoft/TypeScript/issues/28046
keyof for arrays ・ Issue #20965 ・ microsoft/TypeScript
https://github.com/microsoft/TypeScript/issues/20965
この辺どうよ
できたら教えて
https://stackoverflow.com/questions/41253310/typescript-retrieve-element-type-information-from-array-type
Creating types from values in array ・ Issue #28046 ・ microsoft/TypeScript
https://github.com/microsoft/TypeScript/issues/28046
keyof for arrays ・ Issue #20965 ・ microsoft/TypeScript
https://github.com/microsoft/TypeScript/issues/20965
この辺どうよ
できたら教えて
376デフォルトの名無しさん
2020/03/02(月) 20:34:14.12ID:Vt4u2rjY 締め付けはガチガチなのにガバガバな構文
トランスパイルのせいで起動は遅いし設定項目やハマりポイントはクソ増える
選択肢のないフロントはともかく、言語を選び放題なサーバーでts入れてまでjsを使う意味ってなに?
トランスパイルのせいで起動は遅いし設定項目やハマりポイントはクソ増える
選択肢のないフロントはともかく、言語を選び放題なサーバーでts入れてまでjsを使う意味ってなに?
377デフォルトの名無しさん
2020/03/04(水) 19:31:12.74ID:Xkhzo69W >>376
キツマンなのに誰とでも寝るみたいなん感じか
キツマンなのに誰とでも寝るみたいなん感じか
378デフォルトの名無しさん
2020/03/05(木) 00:10:09.52ID:aV1N9imN 型無し言語というジャンルで見ると、一番マシ
379デフォルトの名無しさん
2020/03/07(土) 19:41:25.48ID:Gq72B5Zp https://github.com/microsoft/vscode-textbuffer/blob/master/src/common/position.ts をC#に書き直してる。
44行目からのwithが分からん。
with(newLineNumber: number = this.lineNumber, newColumn: number = this.column): Position {
if (newLineNumber === this.lineNumber && newColumn === this.column) {
return this;
} else {
return new Position(newLineNumber, newColumn);
}
解説とC#に書き直して。"Create a new postion from this position."ってあるけど、
どう呼ばれるの?もしかしてwith文じゃなくて、with()ってメソッド?
44行目からのwithが分からん。
with(newLineNumber: number = this.lineNumber, newColumn: number = this.column): Position {
if (newLineNumber === this.lineNumber && newColumn === this.column) {
return this;
} else {
return new Position(newLineNumber, newColumn);
}
解説とC#に書き直して。"Create a new postion from this position."ってあるけど、
どう呼ばれるの?もしかしてwith文じゃなくて、with()ってメソッド?
380デフォルトの名無しさん
2020/03/07(土) 20:06:50.29ID:74qnesAz メソッドの定義以外の何に見えるのか
381デフォルトの名無しさん
2020/03/07(土) 21:33:39.02ID:po15mmZE そもそも JavaScript に with 文なんて・・・あるのかよ何だこの邪悪な臭いがプンプンするやべえやつは
382デフォルトの名無しさん
2020/03/08(日) 10:00:55.25ID:Dz/wpeTc >>203
御社は今どういう状況になってる?
御社は今どういう状況になってる?
383デフォルトの名無しさん
2020/03/08(日) 13:25:25.06ID:/+j1E1ja384デフォルトの名無しさん
2020/03/08(日) 13:39:52.36ID:Dz/wpeTc サンクス
385デフォルトの名無しさん
2020/04/14(火) 00:16:42.49ID:Rf+yV41A 違い何?
interface Dictionary<T> { [key: string]: T; }
type Dictionary<T> = { [key: string]: T; };
interface Dictionary<T> { [key: string]: T; }
type Dictionary<T> = { [key: string]: T; };
386デフォルトの名無しさん
2020/04/14(火) 00:52:31.86ID:1s8555QT そのコードに限っては、違いないかもな
interface は後から追加できる
これ playground にでも貼ってみ
```
interface DictionaryI {
a: string
b: string
}
type DictionaryT = {
a: string
b: string
};
interface DictionaryI {
wow: number
}
type DictionaryT {
wow: number
}
const di: DictionaryI = ({} as any)
console.log(di.wow)
```
だから、ライブラリの定義ではたまに使われる
プロダクトコードで使ってる奴は物知らないか、設計力のないやつ
interface は後から追加できる
これ playground にでも貼ってみ
```
interface DictionaryI {
a: string
b: string
}
type DictionaryT = {
a: string
b: string
};
interface DictionaryI {
wow: number
}
type DictionaryT {
wow: number
}
const di: DictionaryI = ({} as any)
console.log(di.wow)
```
だから、ライブラリの定義ではたまに使われる
プロダクトコードで使ってる奴は物知らないか、設計力のないやつ
387デフォルトの名無しさん
2020/04/14(火) 08:03:12.85ID:KwYjFqSp >物知らないか、設計力のないやつ
どうして?
どうして?
388デフォルトの名無しさん
2020/04/14(火) 08:24:49.93ID:NW9baKp2 >>386
ケツにIとかTを付けるのは設計力の無いやつ
ケツにIとかTを付けるのは設計力の無いやつ
389デフォルトの名無しさん
2020/04/14(火) 08:34:25.44ID:1s8555QT390デフォルトの名無しさん
2020/04/14(火) 08:54:36.47ID:NW9baKp2391デフォルトの名無しさん
2020/04/14(火) 10:13:18.16ID:1s8555QT >>390
たぶん君は、Java の implements に使える interface のことを言ってるのだと思うが、
type でも implements 相当の宣言ができるので、
TS の interface は src 変更が容易でないが、ライブラリの性質上拡張の余地が必要なケースでしか有効でない
「同じ名前の型なのに、実は後から src のどこかで拡張されてました」なんて嫌だろう?
どこの JavaScript だよ
たぶん君は、Java の implements に使える interface のことを言ってるのだと思うが、
type でも implements 相当の宣言ができるので、
TS の interface は src 変更が容易でないが、ライブラリの性質上拡張の余地が必要なケースでしか有効でない
「同じ名前の型なのに、実は後から src のどこかで拡張されてました」なんて嫌だろう?
どこの JavaScript だよ
392デフォルトの名無しさん
2020/04/14(火) 18:14:19.90ID:Rf+yV41A393デフォルトの名無しさん
2020/04/26(日) 04:53:02.63ID:IAt9cGuZ function hoge<T, S> (x: T, f: (x: T) => S) {
// ...
}
みたいな関数があって、引数f のデフォルト値を identity:<T>(x: T) => T
にしたいんだけど、無理かしら?
hoge(1) <-- このときは T: number, S: number と推論してほしくて、
hoge(1, n => `number: ${n}`) <-- このときはT: number, S: string と推論してほしい
// ...
}
みたいな関数があって、引数f のデフォルト値を identity:<T>(x: T) => T
にしたいんだけど、無理かしら?
hoge(1) <-- このときは T: number, S: number と推論してほしくて、
hoge(1, n => `number: ${n}`) <-- このときはT: number, S: string と推論してほしい
394デフォルトの名無しさん
2020/04/26(日) 05:47:15.51ID:IAt9cGuZ ごめん、自己解決した
TypeScriptでは依存型をオーバーロードで実現できるのね
```
function hoge<T>(x: T): T;
function hoge<T, S>(x: T, f: (x: T) => S): S;
function hoge<T, S>(x: T, f?: (x: T) => S) {
if (typeof f === "undefined") {
return x
}
return f(x)
}
```
これで一応、第2引数指定しなかったら、戻り値の型を第1引数の型で推論してくれるようになったし、
指定すればその関数の戻り値の型で推論してくれるようになった
TypeScriptでは依存型をオーバーロードで実現できるのね
```
function hoge<T>(x: T): T;
function hoge<T, S>(x: T, f: (x: T) => S): S;
function hoge<T, S>(x: T, f?: (x: T) => S) {
if (typeof f === "undefined") {
return x
}
return f(x)
}
```
これで一応、第2引数指定しなかったら、戻り値の型を第1引数の型で推論してくれるようになったし、
指定すればその関数の戻り値の型で推論してくれるようになった
395デフォルトの名無しさん
2020/05/13(水) 20:55:34.11ID:Z2ECG7mm Announcing TypeScript 3.9
https://devblogs.microsoft.com/typescript/announcing-typescript-3-9/
https://devblogs.microsoft.com/typescript/announcing-typescript-3-9/
396デフォルトの名無しさん
2020/05/13(水) 22:51:12.18ID:8OQL2q6a >Our team has been focusing on performance after observing extremely poor editing/compilation speed with packages like material-ui and styled-components.
あーやっぱり material-ui と styled-components が遅いんだ
両方使ったら耐え難いレベルで重くて辛かった
あーやっぱり material-ui と styled-components が遅いんだ
両方使ったら耐え難いレベルで重くて辛かった
397デフォルトの名無しさん
2020/05/17(日) 20:28:24.81ID:eDtMluXf 初学者が今からTypeScriptやるメリットってある?
普段使ってるC#のBlazorが育つまで我慢してそれまではJS使えばいいかなーという気がしてるんだけど
普段使ってるC#のBlazorが育つまで我慢してそれまではJS使えばいいかなーという気がしてるんだけど
398デフォルトの名無しさん
2020/05/17(日) 21:27:13.06ID:07c/uCSO ・BlazorがTSと同等レベルまで言語・市場が育つことはありえない
・JSに毛の生えた程度の文法でC#と同等以上のタイプセーフの恩恵を受けられる
と思うよ
正直TS始めてからは、JS(特に他人が書いたやつ)は2度と触りたくなくなった
・JSに毛の生えた程度の文法でC#と同等以上のタイプセーフの恩恵を受けられる
と思うよ
正直TS始めてからは、JS(特に他人が書いたやつ)は2度と触りたくなくなった
399デフォルトの名無しさん
2020/05/17(日) 22:05:58.39ID:ShD9HsIi 仕方なく js 書いてる時も jsdoc で型を付けまくってる
もうあの頃には戻れない・・・
もうあの頃には戻れない・・・
400デフォルトの名無しさん
2020/05/17(日) 22:08:17.75ID:ilBeXKNK 毛が生えたと言われてもジェネリクス周りとか仕様がけっこう大きい(大きいだけでそんなに難しくは無いけど)。あと歴史的に同じような機能のものが複数あるのはやや辛い。
401デフォルトの名無しさん
2020/05/17(日) 22:10:49.95ID:ilBeXKNK 素のjsは確かに触りたくなくなったな〜
402デフォルトの名無しさん
2020/05/17(日) 22:12:40.26ID:07c/uCSO403デフォルトの名無しさん
2020/05/18(月) 06:26:49.70ID:IgsFvSEI >>402
確かにそうだわ
確かにそうだわ
404デフォルトの名無しさん
2020/05/19(火) 12:17:36.04ID:m7E0nRpi クラス使えるだけで嬉しかった。prototypeとか二度と触りたくない。
405デフォルトの名無しさん
2020/05/19(火) 19:57:31.83ID:JYXLTsSv せっかくTypeScript使うのになんでクラス
406デフォルトの名無しさん
2020/05/19(火) 20:00:38.62ID:lV40zBP6 jsonに型が付くのマジサイコーって気分になる
407デフォルトの名無しさん
2020/05/20(水) 18:25:07.86ID:uCxRgACC @types/node を v14:x に上げたら fs.write* 周りでエラーがいっぱい出た
以前の型定義ファイルでは第2引数が any だったために見逃されてたのね
以前の型定義ファイルでは第2引数が any だったために見逃されてたのね
408デフォルトの名無しさん
2020/05/20(水) 19:13:29.09ID:kUjfC17v vscoe+deno
d.tsを用意してjsをimportたがインテリセンスに型情報がでない
d.tsを用意してjsをimportたがインテリセンスに型情報がでない
409デフォルトの名無しさん
2020/05/20(水) 19:43:48.30ID:q4rNYEAk アーリーアダプタすぎっしょ
410デフォルトの名無しさん
2020/05/28(木) 04:29:10.95ID:YaDoyLzB 質問させてください
初歩的なものかと思いますがよろしくおねがいします
以下の様に getElementById() にてinput要素を取得した場合、value属性を読み取ろうとすると問題が発生します。
const input = document.getElementById('input');
const text = input.value; // <- プロパティ 'value' は型 'HTMLElement' に存在しません。ts(2339)
解決方法を検索すると、
const input = <HTMLInputElement>document.getElementById('input');
const input = (document.getElementById('input')) as HTMLInputElement;
などの型アサーション?キャスト?で解決するように書いている記事が多くヒットするように感じます。
質問としましては、
・HTMLElementではなくHTMLInputElement等の具体的な型で要素を取得する方法はありますか?
・具体的な型で取得できない場合、それがHTMLInputElementであると判定する方法はどのようなものがありますか?
以上、長くなりましたがご教授頂けると嬉しいです。
初歩的なものかと思いますがよろしくおねがいします
以下の様に getElementById() にてinput要素を取得した場合、value属性を読み取ろうとすると問題が発生します。
const input = document.getElementById('input');
const text = input.value; // <- プロパティ 'value' は型 'HTMLElement' に存在しません。ts(2339)
解決方法を検索すると、
const input = <HTMLInputElement>document.getElementById('input');
const input = (document.getElementById('input')) as HTMLInputElement;
などの型アサーション?キャスト?で解決するように書いている記事が多くヒットするように感じます。
質問としましては、
・HTMLElementではなくHTMLInputElement等の具体的な型で要素を取得する方法はありますか?
・具体的な型で取得できない場合、それがHTMLInputElementであると判定する方法はどのようなものがありますか?
以上、長くなりましたがご教授頂けると嬉しいです。
411デフォルトの名無しさん
2020/05/28(木) 05:30:32.28ID:uIAU+1VL >getElementById
英語読め
英語読め
412デフォルトの名無しさん
2020/05/28(木) 07:36:15.22ID:XtQwhE1K >>410
https://bi□t.ly/2zBJQbZ
こんな感じでいかがでございましょうか?
getElementById の取得結果は、HTMLElement を継承した何かであることは確実だが
より具体的な型であることは if 文などで判定しないとわからないので
(読みやすい)ワンライナーするのは難しいかな
https://bi□t.ly/2zBJQbZ
こんな感じでいかがでございましょうか?
getElementById の取得結果は、HTMLElement を継承した何かであることは確実だが
より具体的な型であることは if 文などで判定しないとわからないので
(読みやすい)ワンライナーするのは難しいかな
413デフォルトの名無しさん
2020/05/28(木) 07:37:06.32ID:XtQwhE1K リンク先は typescript playground
長すぎて貼れなかった
url中の□を取っ払ってアクセスしてほしい
こっちも短縮url規制で貼れなかった
長すぎて貼れなかった
url中の□を取っ払ってアクセスしてほしい
こっちも短縮url規制で貼れなかった
414デフォルトの名無しさん
2020/05/28(木) 08:20:23.58ID:YaDoyLzB415デフォルトの名無しさん
2020/06/03(水) 19:01:52.32ID:+riA6q4Z vscodeのタスクでビルドしたいのですが、上手くいきません。
最初から入っていた"tsc: ビルド - tsconfig.json"という設定を使ってタスクを実行すると、
> Executing task: tsc -p (省略)\tsconfig.json <
パラメーターの書式が違います - -Command
と出てビルドが終了しません。
コンソールに同じコマンドをコピペするとちゃんとjsファイルが作成されます。
ググってみたのですが、そもそもtscで「パラメーターの書式が違います」というエラーが出るという記事すらありませんでした・・・
どうすればいいでしょうか。
最初から入っていた"tsc: ビルド - tsconfig.json"という設定を使ってタスクを実行すると、
> Executing task: tsc -p (省略)\tsconfig.json <
パラメーターの書式が違います - -Command
と出てビルドが終了しません。
コンソールに同じコマンドをコピペするとちゃんとjsファイルが作成されます。
ググってみたのですが、そもそもtscで「パラメーターの書式が違います」というエラーが出るという記事すらありませんでした・・・
どうすればいいでしょうか。
416デフォルトの名無しさん
2020/06/03(水) 19:16:49.18ID:W7xz+V5+ 普通にnpmとnpm scriptの一部に組み込んだ方がいいと思う
vscodeのタスクとか使ったことないし、必要性も感じたことないな
vscodeのタスクとか使ったことないし、必要性も感じたことないな
417デフォルトの名無しさん
2020/06/04(木) 22:32:22.64ID:c/bZjxGo tscがどこにインストールされてるか、とか関係ありそう
418デフォルトの名無しさん
2020/06/04(木) 23:13:01.10ID:hC0MsN2x npx tsc --init
で、tsconfig.json が出来る
package.json に、こう書いておいて、
"script": {
"build": tsc
},
npm run build
で、コンパイルする
で、tsconfig.json が出来る
package.json に、こう書いておいて、
"script": {
"build": tsc
},
npm run build
で、コンパイルする
419デフォルトの名無しさん
2020/06/06(土) 19:11:34.24ID:FUHWS7EH420デフォルトの名無しさん
2020/06/06(土) 20:04:01.16ID:vddsi0s3 >>415
パラメータの書式が違うってのはPowerShellでよく見るエラーだけど、VSCodeってPowerShell叩いてるんだっけ?
VSCode固有の問題と決めつけるんじゃなくてもう少し調査してみたら?
パラメータの書式が違うってのはPowerShellでよく見るエラーだけど、VSCodeってPowerShell叩いてるんだっけ?
VSCode固有の問題と決めつけるんじゃなくてもう少し調査してみたら?
421デフォルトの名無しさん
2020/06/07(日) 10:34:46.16ID:s05OkEKn 解決しました
日本語版のWindowsではpowershell.exeがShiftJISで読まれるので、
合わせてvscode上のPowerShellの文字コードをShiftJISに変えていたのが原因でした。
元のUTF-8に戻したら問題なく実行できました。
tscをフルパスで実行したらパスの途中にスペースが発生し、
PowerShellスクリプトのデバッグ時によく見た文字化けだったので気づけました。
>>420
ご名答です
PowerShellが叩かれていて、エラーもPowerShellからでしたw
日本語版のWindowsではpowershell.exeがShiftJISで読まれるので、
合わせてvscode上のPowerShellの文字コードをShiftJISに変えていたのが原因でした。
元のUTF-8に戻したら問題なく実行できました。
tscをフルパスで実行したらパスの途中にスペースが発生し、
PowerShellスクリプトのデバッグ時によく見た文字化けだったので気づけました。
>>420
ご名答です
PowerShellが叩かれていて、エラーもPowerShellからでしたw
422デフォルトの名無しさん
2020/06/11(木) 18:33:48.61ID:Jv4rHxRX Nodeでサーバーを立てているような場合、
ユーザーが入力した値を格納する変数の型は一旦unknownとしておいた方が良いのでしょうか?
例えば以下の様な場合です。
const func1 = (userInput: unknown) => {...};
const func2 = (userInput: string) => {...};
バリデーション等を行って問題が無ければ、
改めて型宣言した変数に代入し直すような方法が一般的ですか?
ユーザーが入力した値を格納する変数の型は一旦unknownとしておいた方が良いのでしょうか?
例えば以下の様な場合です。
const func1 = (userInput: unknown) => {...};
const func2 = (userInput: string) => {...};
バリデーション等を行って問題が無ければ、
改めて型宣言した変数に代入し直すような方法が一般的ですか?
423デフォルトの名無しさん
2020/06/13(土) 14:38:30.02ID:fZdtN3m2 ついにDartがnull安全になったそうな
https://forest.watch.impress.co.jp/docs/news/1258690.html
webからiOSまで1言語で書ける(ちゃんと動くとは言っていない)
https://forest.watch.impress.co.jp/docs/news/1258690.html
webからiOSまで1言語で書ける(ちゃんと動くとは言っていない)
424デフォルトの名無しさん
2020/06/13(土) 16:20:45.29ID:cnsVZnHy 今TypeScript+Reactを勉強しているのですけど、テーブルのコンポーネントで使いやすいものって無いですか?
テーブルのヘッダはそのままで縦は内容だけスクロールして横はテーブルも一緒にスクロールするみたいなものが良いです
テーブルのヘッダはそのままで縦は内容だけスクロールして横はテーブルも一緒にスクロールするみたいなものが良いです
425デフォルトの名無しさん
2020/06/13(土) 21:17:17.22ID:qaq6yJI2 jexcel
react-table
react-tableは、初心者なら v6 おすすめ
理由は、標準でUIが付いてるから簡単にそれっぽいものができる
ドキュメント調べれば割と多くの挙動に対応できるはず
代わりに、UIのカスタマイズがつらい
「あそこのcssを弄りたいけど、どうやって指定すればいいかわからん」
「!importantじゃないと上書きできない」
的なことになりがち
あと、@types を v6 のをインストールするよう注意すること
UIごりごりにカスタマイズしたいなら最新の v7
headless と謳われてるように、UIが一切ないから全て自分の思い通り
代わりに、学習コストが高い
あと @types 書いたやつがバカなのか、Genericsの対応が酷くて
キャストがたくさん必要でうんざりする
react-table
react-tableは、初心者なら v6 おすすめ
理由は、標準でUIが付いてるから簡単にそれっぽいものができる
ドキュメント調べれば割と多くの挙動に対応できるはず
代わりに、UIのカスタマイズがつらい
「あそこのcssを弄りたいけど、どうやって指定すればいいかわからん」
「!importantじゃないと上書きできない」
的なことになりがち
あと、@types を v6 のをインストールするよう注意すること
UIごりごりにカスタマイズしたいなら最新の v7
headless と謳われてるように、UIが一切ないから全て自分の思い通り
代わりに、学習コストが高い
あと @types 書いたやつがバカなのか、Genericsの対応が酷くて
キャストがたくさん必要でうんざりする
426424
2020/06/14(日) 00:14:28.32ID:uuDX9j1b >>425
有難うございます、react-tableを調べてみます。
material-uiがElectronで
TypeError: Cannot use 'in' operator to search for 'ontouchstart' in null
とか出て動かなくて困っていました。
ボタン一個しか指定していないサンプルを写してこれです。
有難うございます、react-tableを調べてみます。
material-uiがElectronで
TypeError: Cannot use 'in' operator to search for 'ontouchstart' in null
とか出て動かなくて困っていました。
ボタン一個しか指定していないサンプルを写してこれです。
427デフォルトの名無しさん
2020/06/14(日) 00:51:17.06ID:864/oVLm >>426
https://stackoverflow.com/questions/60473495/how-to-properly-set-up-material-ui-with-electron-react-boilerplate
速攻それっぽいの出てきたが、ちゃんとググったかねキミィ?
https://stackoverflow.com/questions/60473495/how-to-properly-set-up-material-ui-with-electron-react-boilerplate
速攻それっぽいの出てきたが、ちゃんとググったかねキミィ?
428デフォルトの名無しさん
2020/06/14(日) 12:09:11.89ID:qCi3/fDK これっぽいの見たことあるけど、他にも気になる事があって見落としてました
<div>に書いてあるの要るのかな?
今試せる環境でないので後日に
<div>に書いてあるの要るのかな?
今試せる環境でないので後日に
429デフォルトの名無しさん
2020/06/25(木) 08:05:47.95ID:Nd1uEPT+ TypeScriptってsetIntervalとかsetTimeout,
async/await, Promiseとか使えるんですか?
async/await, Promiseとか使えるんですか?
430デフォルトの名無しさん
2020/06/25(木) 08:55:25.54ID:3QV8gPE9 逆に使えない意味がわからない
431デフォルトの名無しさん
2020/06/25(木) 09:53:31.94ID:2LahzjFh Ruby on Rails では、React も多いけど、
TypeScript を使う香具師は、いるのかな?
TypeScript を使う香具師は、いるのかな?
432デフォルトの名無しさん
2020/06/25(木) 10:01:29.46ID:PKyG+WtC ルビカスは宗教上の理由からTypeScriptなは絶対に使えないんで消えて
フロントエンドの方が厳格な言語で書かれてるとか頭おかしいからなw
フロントエンドの方が厳格な言語で書かれてるとか頭おかしいからなw
433デフォルトの名無しさん
2020/06/25(木) 10:37:01.47ID:V5BYtNqQ かわいそうに。
434デフォルトの名無しさん
2020/06/25(木) 11:14:26.11ID:2XRewe5U CoffeeScriptとは何だったのかω
435デフォルトの名無しさん
2020/06/25(木) 11:57:37.69ID:2LahzjFh Ruby on Rails 6 から、Node.js, webpack が標準になったから、
もう、Coffee Script には依存していない
もう、Coffee Script には依存していない
436デフォルトの名無しさん
2020/06/25(木) 14:16:09.33ID:3QV8gPE9 だからどうしたRubyガイジ
さっさと消えろ
さっさと消えろ
437デフォルトの名無しさん
2020/06/25(木) 14:49:25.12ID:V5BYtNqQ webpack使えるなら、普通にもうRoRでhtml作る必要ないのでは
438デフォルトの名無しさん
2020/06/25(木) 14:51:02.50ID:V5BYtNqQ ほんまやな
PHPもRubyも、型無し糞言語は滅びるべきや
json以外を喋る邪悪なWebサーバーは1台残らず破壊しろ
PHPもRubyも、型無し糞言語は滅びるべきや
json以外を喋る邪悪なWebサーバーは1台残らず破壊しろ
439デフォルトの名無しさん
2020/06/25(木) 14:52:55.59ID:3edAgV/k この場違いRuby妖怪はアンカ飛ばさんでも一応レス見てる素振りを見せるのがちょっとしたホラー
440デフォルトの名無しさん
2020/06/26(金) 03:43:22.98ID:4Xp41V6m GUI は、React, Bootstrap で良いけど、
サーバ側が、Node.js じゃ辛い
Rails, Sinatra などの、Ruby の方が分かりやすい
Rubyの欠点は、web アプリだけしか作れないこと!
スマホ用アプリも必要なら、Electron, React Native + Expo
それか、Unity
サーバ側が、Node.js じゃ辛い
Rails, Sinatra などの、Ruby の方が分かりやすい
Rubyの欠点は、web アプリだけしか作れないこと!
スマホ用アプリも必要なら、Electron, React Native + Expo
それか、Unity
441デフォルトの名無しさん
2020/06/26(金) 07:42:47.69ID:Sd6G194T Rubyの欠点はお前みたいなキチガイがスレチのクソ宣伝で評価を下げてることだよ
442デフォルトの名無しさん
2020/06/26(金) 14:54:51.55ID:6IXnju0o https://twitter.com/yokatsuki/status/744702839558017024
多言語disをついやってしまう癖を止めて欲しい。
最後に参加したTokyuRubyKaigiで「Javaやってる人手を挙げてはーい♪今挙げた人はすぐに帰ってくださーい♪」って言ったのは忘れたくても忘れられない。
https://twitter.com/5chan_nel (5ch newer account)
多言語disをついやってしまう癖を止めて欲しい。
最後に参加したTokyuRubyKaigiで「Javaやってる人手を挙げてはーい♪今挙げた人はすぐに帰ってくださーい♪」って言ったのは忘れたくても忘れられない。
https://twitter.com/5chan_nel (5ch newer account)
443デフォルトの名無しさん
2020/06/26(金) 16:51:07.25ID:Z5HJiD+l 型無し糞言語やってる人は帰るだけじゃ済まされない
死んでください
死んでください
444デフォルトの名無しさん
2020/06/26(金) 18:00:16.15ID:9etEQyfp 俺も東横線代表として参加してくるわ
445デフォルトの名無しさん
2020/06/26(金) 20:32:19.16ID:aHXqCiQW >型無し糞言語
今どきの言語で何があったっけ?
今どきの言語で何があったっけ?
446デフォルトの名無しさん
2020/06/26(金) 22:12:45.13ID:TcIyIoqu447デフォルトの名無しさん
2020/06/27(土) 01:29:27.09ID:9wE9An+g ありますで喩えると
Java山中さん
*by笹井さん
Java山中さん
*by笹井さん
448デフォルトの名無しさん
2020/07/01(水) 14:29:27.01ID:OAvcKBIQ Talking TypeScript with the engineer who leads the team
https://stackoverflow.blog/2020/06/15/talking-typescript-with-ryan-cavanaugh/
https://stackoverflow.blog/2020/06/15/talking-typescript-with-ryan-cavanaugh/
449デフォルトの名無しさん
2020/07/15(水) 11:01:56.72ID:IqfNcqeZ TypeScript で、無名配列のJSON ファイルは、import できない
[
["a", 10],
["b", 20]
]
名前を付ければ、import できる。
import { xyz } from "./a.json";
{"xyz": [
["a", 10],
["b", 20]
]
}
[
["a", 10],
["b", 20]
]
名前を付ければ、import できる。
import { xyz } from "./a.json";
{"xyz": [
["a", 10],
["b", 20]
]
}
450デフォルトの名無しさん
2020/07/15(水) 12:14:33.71ID:cL9c5hZ8 typescriptに限らず
そういう実装結構ある
全体は{}を仮定してるの
そういう実装結構ある
全体は{}を仮定してるの
451デフォルトの名無しさん
2020/07/15(水) 13:02:18.34ID:pL8+4mwq jsonってトップレベルはObject必須だと思ってた
そういう仕様あるのかな
そういう仕様あるのかな
452デフォルトの名無しさん
2020/07/15(水) 15:59:04.81ID:T1dYtDa5 Type Script 使ってみて思ったけど
最初から ES がこの仕様だったら本当に助かってた
そして今の課題は既にある ES のライブラリ摂りこむのが面倒
なんとかならんのか??っていう
最初から ES がこの仕様だったら本当に助かってた
そして今の課題は既にある ES のライブラリ摂りこむのが面倒
なんとかならんのか??っていう
453デフォルトの名無しさん
2020/07/15(水) 16:48:00.29ID:cL9c5hZ8 C# 使ってみて思ったけど
最初から C がこの仕様だったら本当に助かってた
そして今の課題は既にある C のライブラリ摂りこむのが面倒
なんとかならんのか??っていう
最初から C がこの仕様だったら本当に助かってた
そして今の課題は既にある C のライブラリ摂りこむのが面倒
なんとかならんのか??っていう
454デフォルトの名無しさん
2020/07/15(水) 16:58:29.54ID:pL8+4mwq 割とマジで攻守共にTypeScriptが最強だわ
TSに欠けてるのは、あとはパターンマッチくらいだろう
TypeScriptがネイティブバイナリ吐くようになればいい
TSに欠けてるのは、あとはパターンマッチくらいだろう
TypeScriptがネイティブバイナリ吐くようになればいい
455デフォルトの名無しさん
2020/07/15(水) 19:14:22.28ID:Iul+D8/c456449
2020/07/15(水) 19:20:18.72ID:IqfNcqeZ ./a.json に以下だけを書いて、どういうimport 文を書いたの?
[
["a", 10],
["b", 20]
]
[
["a", 10],
["b", 20]
]
457デフォルトの名無しさん
2020/07/15(水) 20:06:40.11ID:Iul+D8/c ふつうに
import j from './a.json';
"module"は"commonjs"
import j from './a.json';
"module"は"commonjs"
458デフォルトの名無しさん
2020/07/15(水) 20:24:52.52ID:guZu56HE esModuleInterop か allowSyntheticDefaultImports は true になってる?
false や未設定なら、 `import * as j from './a.json';` でインポートする必要がある
false や未設定なら、 `import * as j from './a.json';` でインポートする必要がある
459デフォルトの名無しさん
2020/07/15(水) 20:31:01.05ID:Iul+D8/c ああすまん、"resolveJsonMdule": true してた。
つまりmoduleじゃないjsonをロードしたいならこれが必要ってことね。
つまりmoduleじゃないjsonをロードしたいならこれが必要ってことね。
460449
2020/07/15(水) 21:20:34.32ID:IqfNcqeZ あれ? 普通に、これで、import できた!
漏れの勘違いだったみたい
import j from "./a.json";
漏れの設定は、
"module": "es2015",
"esModuleInterop": true,
"resolveJsonModule": true,
漏れの勘違いだったみたい
import j from "./a.json";
漏れの設定は、
"module": "es2015",
"esModuleInterop": true,
"resolveJsonModule": true,
461デフォルトの名無しさん
2020/07/16(木) 13:16:30.71ID:Bj5j4Y6i こういうのはだめなんだっけ
[
["a", 10],
["b", 20],
]
[
["a", 10],
["b", 20],
]
462デフォルトの名無しさん
2020/07/16(木) 15:09:37.34ID:J/CG/YnB TypeScript の開発中は、
Webpack のオフライン機能、workbox を使わないから、
package.json の、"workbox-webpack-plugin": "^5.1.3" を、
コメントアウトしようとしたが、形式エラーになって出来ない
削除はできるけど、コメントアウトで残しておきたい
Webpack のオフライン機能、workbox を使わないから、
package.json の、"workbox-webpack-plugin": "^5.1.3" を、
コメントアウトしようとしたが、形式エラーになって出来ない
削除はできるけど、コメントアウトで残しておきたい
463デフォルトの名無しさん
2020/07/16(木) 15:10:33.56ID:L+apgnKF gitを使いましょうよ・・・
464デフォルトの名無しさん
2020/07/16(木) 15:13:26.35ID:J/CG/YnB465デフォルトの名無しさん
2020/07/16(木) 18:14:40.47ID:QwF0ci9g よく知らないなら黙ってろrubyガイジ
466デフォルトの名無しさん
2020/07/16(木) 18:31:21.38ID:L+apgnKF467デフォルトの名無しさん
2020/07/22(水) 02:36:42.07ID:2/9nnKBr クライアント向けの開発サーバーが付いている、Parcel を使っている香具師いる?
Postman を使っている香具師いる?
これは、REST クライアントかな?
漏れは、VSCode の拡張機能の、REST Client を使っているけど
他には、TypeScript で、Express サーバーを実行する、ts-node-dev は?
Postman を使っている香具師いる?
これは、REST クライアントかな?
漏れは、VSCode の拡張機能の、REST Client を使っているけど
他には、TypeScript で、Express サーバーを実行する、ts-node-dev は?
468デフォルトの名無しさん
2020/08/01(土) 03:44:15.17ID:BmlbAE5y pacage.jsonのバージョンを取得したくて
src/index.tsで
import {version} from '../package.json'
を思いついたのですが、これだとコンパイルでdistに排出されるときにpackage.jsonも排出されてしまいます
これを解決する(依存関係をdistに持ってくるのではなくが./package.jsonを常に読むようにしたい)方法はあるのでしょうか?
src/index.tsで
import {version} from '../package.json'
を思いついたのですが、これだとコンパイルでdistに排出されるときにpackage.jsonも排出されてしまいます
これを解決する(依存関係をdistに持ってくるのではなくが./package.jsonを常に読むようにしたい)方法はあるのでしょうか?
469デフォルトの名無しさん
2020/08/01(土) 07:24:44.96ID:WBys/bG4 コンパイルするたび常に最新のpackage.jsonがdistに排出されるんだから
それでええんちゃう?
それでええんちゃう?
470デフォルトの名無しさん
2020/08/01(土) 19:08:50.40ID:BmlbAE5y >>469
自分的にはdistに排出される先にもう一つpackage.jsonが作られるのが気持ち悪いと感じたのですがそうでもないんですかね?
自分的にはdistに排出される先にもう一つpackage.jsonが作られるのが気持ち悪いと感じたのですがそうでもないんですかね?
471デフォルトの名無しさん
2020/08/01(土) 21:11:01.65ID:PGLLO5uD たしかにキモい
472デフォルトの名無しさん
2020/08/01(土) 21:32:06.85ID:WBys/bG4 普通にgitignoreしてるだろうしdistにpackage.jsonがあっても特にデメリットないし
distに何が吐かれててもええんちゃう?
distに何が吐かれててもええんちゃう?
473デフォルトの名無しさん
2020/08/03(月) 07:34:16.45ID:qdvto+rV474デフォルトの名無しさん
2020/08/03(月) 09:46:39.86ID:l1ICYS01 >>473
横からだけどサンキュー
こんなことできるんだね、勉強になった
package.jsonの各種要素を読み込みたい! - DEV
https://dev.to/origamium/package-json-1626
横からだけどサンキュー
こんなことできるんだね、勉強になった
package.jsonの各種要素を読み込みたい! - DEV
https://dev.to/origamium/package-json-1626
475デフォルトの名無しさん
2020/08/03(月) 10:52:32.11ID:qdvto+rV >>474
公式にもこんなところにしれっと書かれてる
https://docs.npmjs.com/misc/scripts#packagejson-vars
package.jsonの各フィールドの説明してるページには書いてないんだなぁ…
公式にもこんなところにしれっと書かれてる
https://docs.npmjs.com/misc/scripts#packagejson-vars
package.jsonの各フィールドの説明してるページには書いてないんだなぁ…
476デフォルトの名無しさん
2020/08/05(水) 08:07:16.62ID:uWbem7nq Announcing the new TypeScript Website
https://devblogs.microsoft.com/typescript/announcing-the-new-typescript-website/
https://devblogs.microsoft.com/typescript/announcing-the-new-typescript-website/
477デフォルトの名無しさん
2020/08/21(金) 08:26:54.83ID:D9+iHL3k Announcing TypeScript 4.0
https://devblogs.microsoft.com/typescript/announcing-typescript-4-0/
https://devblogs.microsoft.com/typescript/announcing-typescript-4-0/
478デフォルトの名無しさん
2020/08/21(金) 09:31:14.74ID:pu35Qu/1 もう4.0の時代なのか・・・
それなのにおまいらのプロダクトときたら・・・
それなのにおまいらのプロダクトときたら・・・
479デフォルトの名無しさん
2020/08/21(金) 11:12:40.65ID:7l2hhkMF 現場猫『ヨシッ!』
480デフォルトの名無しさん
2020/08/21(金) 11:15:43.37ID:6zccVHNz 監督猫『ヨシッ!』
481デフォルトの名無しさん
2020/08/21(金) 13:28:51.80ID:pu35Qu/1 一次請猫『ヨシッ!』
482デフォルトの名無しさん
2020/09/14(月) 09:29:26.60ID:CfIbX1f0 ここで聞いて良いのかわからないけどimportの拡張子(.js)を省略して、js変換時に拡張子をつけることってできないかな?
開発中はtsc使って開発者終了時だけwebpack使いたいのだけども
開発中はtsc使って開発者終了時だけwebpack使いたいのだけども
483デフォルトの名無しさん
2020/09/14(月) 09:33:13.37ID:/HJ+wc6C そのようにwebpack設定するだけでは
cssやjpgとかの非プログラムファイルにしかimport文に拡張子書いたことないわ
cssやjpgとかの非プログラムファイルにしかimport文に拡張子書いたことないわ
484デフォルトの名無しさん
2020/09/14(月) 21:55:40.83ID:CfIbX1f0 webpackの方でなんとかするしかないか。
ありがと
ありがと
485デフォルトの名無しさん
2020/09/15(火) 00:09:40.68ID:g6ghhz4T typescript のポリシーからすると将来的にも対応される可能性は低い
486デフォルトの名無しさん
2020/09/28(月) 14:36:37.18ID:NZq3hOP+ マイクロソフト発のオープンソース言語「TypeScript」、生みの親が語る開発当初や背景
https://japan.zdnet.com/article/35159882/
https://japan.zdnet.com/article/35159882/
487デフォルトの名無しさん
2020/09/28(月) 19:49:45.93ID:kE1qWQhp TypeScriptのまえにWebAssemblyが登場していたらみなそっちに飛び付いたのだろうか。
488デフォルトの名無しさん
2020/09/28(月) 22:54:37.39ID:t2I6kwxp 何だかんだ言ってみんなJavaScriptが大好きだからな
それにブラウザに実装されているAPIはJavaScriptから使うこと前提だからWebAssembly使っても余計な苦労するだけだ
ゲームには向いてるだろうけど
それにブラウザに実装されているAPIはJavaScriptから使うこと前提だからWebAssembly使っても余計な苦労するだけだ
ゲームには向いてるだろうけど
489デフォルトの名無しさん
2020/09/28(月) 22:56:43.96ID:L69JRisQ 既存のJS資産を流用できたのも強みの1つだったと思うから、やっぱTSの戦略勝ちじゃねえの
つかWASMって一時期騒がれてたけど今どうなったんだ?
つかWASMって一時期騒がれてたけど今どうなったんだ?
490デフォルトの名無しさん
2020/09/28(月) 23:49:19.24ID:XJOyCoAG491デフォルトの名無しさん
2020/09/29(火) 09:41:15.62ID:tKw94fLv FlutterがDartじゃなくてTSだったら良かったのに
492デフォルトの名無しさん
2020/09/29(火) 11:21:16.26ID:P1Q7o4iq ほんとそれな
あんな劣化Javaみたいな言語ありがたがってる連中の頭が理解できない
あんな劣化Javaみたいな言語ありがたがってる連中の頭が理解できない
493デフォルトの名無しさん
2020/09/29(火) 12:10:42.86ID:aaxcyAZi 大して機能違わないじゃん。
何が足りないと思ってるの?
何が足りないと思ってるの?
494デフォルトの名無しさん
2020/09/29(火) 13:15:04.46ID:pjrsoCYz 知能
努力
向上心
努力
向上心
495デフォルトの名無しさん
2020/09/29(火) 13:35:36.65ID:P5R6/7cr そうだな、JavaとJavaScriptも一緒だしな
496デフォルトの名無しさん
2020/09/29(火) 14:11:13.25ID:Y54HkFIW >>493
NULL安全とか?
NULL安全とか?
497デフォルトの名無しさん
2020/09/29(火) 15:46:22.91ID:aaxcyAZi498デフォルトの名無しさん
2020/09/29(火) 18:45:22.24ID:fbgKh1ZX マイクロソフト発のオープンソース言語「TypeScript」、生みの親が語る開発当初や背景
https://japan.zdnet.com/article/35159882/
https://japan.zdnet.com/article/35159882/
499デフォルトの名無しさん
2020/09/30(水) 13:09:08.11ID:pBMNn9J9 >> Microsoftが2018年に75億ドル(約8000億円)を投じて買収したGitHub
知らんかった
オンライン版のvscodeがGitHubにあるのはそういうわけか
知らんかった
オンライン版のvscodeがGitHubにあるのはそういうわけか
500デフォルトの名無しさん
2020/10/02(金) 00:47:34.12ID:c4z818i5 ピチャイのマイクロソフトは良いマイクロソフト。
501デフォルトの名無しさん
2020/10/10(土) 13:18:23.70ID:hWE3VueY こんにちは。プログラミング初心者です。
TypeScriptとJavaScriptはどっちが最強なんでしょうか?
これから始める場合はどっちがいいのですか?
TypeScriptはJavaScriptとくらべ実行速度は変わらないのに
静的型付けのため記述が面倒で学習する価値がないと友達が
言ってたんですがこれは正しいですか?
TypeScriptとJavaScriptはどっちが最強なんでしょうか?
これから始める場合はどっちがいいのですか?
TypeScriptはJavaScriptとくらべ実行速度は変わらないのに
静的型付けのため記述が面倒で学習する価値がないと友達が
言ってたんですがこれは正しいですか?
502デフォルトの名無しさん
2020/10/10(土) 14:42:01.38ID:xtGRZD/P503デフォルトの名無しさん
2020/10/10(土) 15:45:53.37ID:hWE3VueY >>502
なるほど。つまりTypeScripはtコードをきれいに見せるためだけの言語ってことなんですね。
なるほど。つまりTypeScripはtコードをきれいに見せるためだけの言語ってことなんですね。
504デフォルトの名無しさん
2020/10/10(土) 15:53:32.39ID:PAS52Dcu 価値がわかるようになるまではJS使うのをおすすめする
今TS触っても嫌いになるだけだと思う
今TS触っても嫌いになるだけだと思う
505デフォルトの名無しさん
2020/10/10(土) 16:35:21.67ID:hWE3VueY ん。。。価値が分かる人にしかわからないプロ向けの言語なんですね。。。
506デフォルトの名無しさん
2020/10/10(土) 16:57:30.55ID:OrgjdyW8 綺麗に見えるということは他人が書いたコードであっても理解しやすいといえる
507デフォルトの名無しさん
2020/10/10(土) 17:08:45.97ID:hWE3VueY 複数人で開発するとき用ってことですね。
一人でWEBアプリ作って満足してる分には必要なさそうですね。
一人でWEBアプリ作って満足してる分には必要なさそうですね。
508デフォルトの名無しさん
2020/10/10(土) 17:26:29.17ID:BjY8+1pb ソースを公開する時に型は必須だな
複数人開発だと必然的に他人にソースを公開する訳だから型は必須だな
一人で開発してる時も未来の自分にソースを公開すると考えれば型は必須だな
複数人開発だと必然的に他人にソースを公開する訳だから型は必須だな
一人で開発してる時も未来の自分にソースを公開すると考えれば型は必須だな
509デフォルトの名無しさん
2020/10/10(土) 17:30:06.10ID:BjY8+1pb この理屈で行くと型が必要無い状況は使い捨てのコードを書く時になる
実際、実験的なコードを書くときはJavaScriptでサクッと書いてる
実際、実験的なコードを書くときはJavaScriptでサクッと書いてる
510デフォルトの名無しさん
2020/10/10(土) 17:31:37.81ID:hWE3VueY 型を指定するのは実行速度のためだと思ってましたが違うんですね。
511デフォルトの名無しさん
2020/10/10(土) 17:41:03.06ID:myt/k5c7 個人で、1ファイル、2, 300行程度のオモチャしか書かない奴にはいらないかもしれんな
複数人で、2ファイル以上のまともなコード書くなら、型は必須
「全てのfunctionが何かを引数にとって何かを返します。その『何か』はコードを読まないとわかりません」
じゃ困るだろ
複数人で、2ファイル以上のまともなコード書くなら、型は必須
「全てのfunctionが何かを引数にとって何かを返します。その『何か』はコードを読まないとわかりません」
じゃ困るだろ
512デフォルトの名無しさん
2020/10/10(土) 17:46:03.97ID:hWE3VueY 複数人でも一つ一つ関数定義を確りして
コメントを残せば後から見返してもわかりそうな気がするのは
私がまだ未熟なんですね。
コメントを残せば後から見返してもわかりそうな気がするのは
私がまだ未熟なんですね。
513デフォルトの名無しさん
2020/10/10(土) 17:46:21.26ID:jqYiciHv 3ヶ月前の自分は他人
webのようにリリース後にメンテする可能性があるなら確実に過去の自分を恨むだろう
webのようにリリース後にメンテする可能性があるなら確実に過去の自分を恨むだろう
514デフォルトの名無しさん
2020/10/10(土) 17:56:33.59ID:myt/k5c7 >>512
でもそのコメント、人によって書き方バラバラだし、その通りに実装・使用されているかわからないよね
そのコメントが規格化されていて、その通りに実装・使用されていることを保証してくれるのがTypeScriptとでも思え
でもそのコメント、人によって書き方バラバラだし、その通りに実装・使用されているかわからないよね
そのコメントが規格化されていて、その通りに実装・使用されていることを保証してくれるのがTypeScriptとでも思え
515デフォルトの名無しさん
2020/10/10(土) 18:02:00.15ID:hWE3VueY わかりました。TypeScriptの勉強をしてみます。
バックにはMicrosoftとGoogleがついてるみたいですので
安心して学習してみます。
バックにはMicrosoftとGoogleがついてるみたいですので
安心して学習してみます。
516デフォルトの名無しさん
2020/10/10(土) 18:14:27.06ID:myt/k5c7 せや
どこの馬の骨ともしれんバカではなく
MicrosoftとGoogleの天才たちを信じろ
どこの馬の骨ともしれんバカではなく
MicrosoftとGoogleの天才たちを信じろ
517デフォルトの名無しさん
2020/10/10(土) 18:32:27.26ID:ekvQuOcm 型情報による補完などのエディタの支援機能がないと書けない体になってしまった…
518デフォルトの名無しさん
2020/10/10(土) 18:36:49.23ID:jkmsbl3z >>502
これさ無茶苦茶なコード書いてる人がキレイなコードかけるようになるって点でTSって素晴らしいと思う
これさ無茶苦茶なコード書いてる人がキレイなコードかけるようになるって点でTSって素晴らしいと思う
519デフォルトの名無しさん
2020/10/10(土) 18:39:08.90ID:hWE3VueY 今日までエラーがでなければどんなコードでもいいと思ってました。
520デフォルトの名無しさん
2020/10/10(土) 18:52:40.99ID:jqYiciHv 最終的にはそうだよ
同じ動きをするならユーザーにはどんなコードも同じ
開発側から見てどうか?ってだけ
同じ動きをするならユーザーにはどんなコードも同じ
開発側から見てどうか?ってだけ
521デフォルトの名無しさん
2020/10/10(土) 19:08:51.73ID:hWE3VueY 開発側の立場で考えるとTypeScriptが必要になるんですね。
522デフォルトの名無しさん
2020/10/10(土) 19:15:05.89ID:SwfxuCYC523デフォルトの名無しさん
2020/10/10(土) 19:19:58.24ID:PAS52Dcu Pythonなんかもっとひどいぞ
ただ色んなレベルの人がいるというのは新しい人が入ってきている証拠でもあるので、歓迎すべきことでもある
誰でも最初は初心者なんだしさ
ただ色んなレベルの人がいるというのは新しい人が入ってきている証拠でもあるので、歓迎すべきことでもある
誰でも最初は初心者なんだしさ
524デフォルトの名無しさん
2020/10/10(土) 19:42:13.27ID:w1paHL08 技術ブログ等で公開されているTypeScriptなコードの品質の平均はJavaScriptのそれと比べて高い。そういう意味でも使う価値がある。
もちろん例外はあるけどね
もちろん例外はあるけどね
525デフォルトの名無しさん
2020/10/10(土) 21:06:49.30ID:tFVag5PE526デフォルトの名無しさん
2020/10/10(土) 21:08:17.35ID:tFVag5PE javascriptの言語仕様では
まともな物は作れませんので。
まともな物は作れませんので。
527デフォルトの名無しさん
2020/10/10(土) 22:14:14.78ID:fDny8+f1 >>524
それはTypeScriptの採用によって品質が向上したというより、タイプ量やビルドの複雑さの多少の増大と引き換えに静的型付けを取るという
極めて正しい選択ができるだけの能力があるエンジニアが書いたからだろうね
それはTypeScriptの採用によって品質が向上したというより、タイプ量やビルドの複雑さの多少の増大と引き換えに静的型付けを取るという
極めて正しい選択ができるだけの能力があるエンジニアが書いたからだろうね
528デフォルトの名無しさん
2020/10/10(土) 22:15:54.62ID:6sdqDrQt 俺はC/C++からやってるけど、JavaScriptで型がなくって困るって事はないなあ。
ただ、形無し言語しかやったことないのなら、TypeScriptの方を薦めるけど。
(なお俺は生JSしかやっておらず、TSは触ってもいない)
Cみたいにメモリ領域を厳密に規定する為ならともかく、
Java以降の言語の型って、コンパイラで落とす為でしかない。
しかも、入口と出口で都合2回書いて、それが合っているかを確認するだけ。
実際、それでもタイポを落とせるので大変役に立つのは事実だけど、
型を間違ってエラーになるなんて事はほぼ無いし、有ってもスモークテストで確実に落とせる。
だから、言ってしまえば、スモークテストが通るまで捗るだけ。
この点、現状のC++やRustは空回りしてて、
コンパイラで落とす為に厳密に書く必要があり、結果的にやたら遠回りしてたりする。
俺が思うにあれは完全に本末転倒。コード構造が制限を受けてどうするんだよ?
この点、TSは無駄に気負わず、
型の恩恵を受けつつ、面倒になれば省略出来る、位だから受けているのだと思う。
ただ、型の恩恵なんて上記の通り、スモークテストが通るまででしかない。
その後のメンテナンス性は、特にオブジェクト指向(OOP)を正しく適用出来てるかがキモになる。
ところが、JSではOOPは学べない。これはTSも同じだと思う。
周りの環境が酷すぎて、初心者〜中級者にはOOPするメリットを感じられないから。
(HTMLも酷いが、ネイティブオブジェクトを拡張してもろくに動かないのも酷い)
Javaや.NETみたいにびしっと作ってあれば、比較的小さな規模でも恩恵を受けられるが、
JSはそれらよりは断然高レベルプログラミングで、その分行数も少なく済み、
大体においてそんなに大規模にもならないし、OOPガッツリやる意味もほぼ無く全て済んでしまう。
だからその先、具体的にはソースコードが10k行を越えるまでは、
JSやTSは学習用言語としてはいいと思うよ。
その辺になってきて、一つの言語しか使えないってのもほぼ無いから、杞憂かもしれんが。
ただ、形無し言語しかやったことないのなら、TypeScriptの方を薦めるけど。
(なお俺は生JSしかやっておらず、TSは触ってもいない)
Cみたいにメモリ領域を厳密に規定する為ならともかく、
Java以降の言語の型って、コンパイラで落とす為でしかない。
しかも、入口と出口で都合2回書いて、それが合っているかを確認するだけ。
実際、それでもタイポを落とせるので大変役に立つのは事実だけど、
型を間違ってエラーになるなんて事はほぼ無いし、有ってもスモークテストで確実に落とせる。
だから、言ってしまえば、スモークテストが通るまで捗るだけ。
この点、現状のC++やRustは空回りしてて、
コンパイラで落とす為に厳密に書く必要があり、結果的にやたら遠回りしてたりする。
俺が思うにあれは完全に本末転倒。コード構造が制限を受けてどうするんだよ?
この点、TSは無駄に気負わず、
型の恩恵を受けつつ、面倒になれば省略出来る、位だから受けているのだと思う。
ただ、型の恩恵なんて上記の通り、スモークテストが通るまででしかない。
その後のメンテナンス性は、特にオブジェクト指向(OOP)を正しく適用出来てるかがキモになる。
ところが、JSではOOPは学べない。これはTSも同じだと思う。
周りの環境が酷すぎて、初心者〜中級者にはOOPするメリットを感じられないから。
(HTMLも酷いが、ネイティブオブジェクトを拡張してもろくに動かないのも酷い)
Javaや.NETみたいにびしっと作ってあれば、比較的小さな規模でも恩恵を受けられるが、
JSはそれらよりは断然高レベルプログラミングで、その分行数も少なく済み、
大体においてそんなに大規模にもならないし、OOPガッツリやる意味もほぼ無く全て済んでしまう。
だからその先、具体的にはソースコードが10k行を越えるまでは、
JSやTSは学習用言語としてはいいと思うよ。
その辺になってきて、一つの言語しか使えないってのもほぼ無いから、杞憂かもしれんが。
529デフォルトの名無しさん
2020/10/10(土) 22:22:26.76ID:A0BwGHo+ 何言ってんだこいつ
530デフォルトの名無しさん
2020/10/10(土) 22:29:28.83ID:xMQUNHWy OOPなんて使えて当たり前。OOPを神格化してる奴でOOP以外の技法も使いこなせてるヤツ見たことない。
それにOOPの価値はコードの大小に依らない
それにOOPの価値はコードの大小に依らない
531デフォルトの名無しさん
2020/10/10(土) 22:35:39.32ID:myt/k5c7 俺は困らないからJSでいい論は全てゴミ
想像力の欠けた引きこもりアスペが書いた妄想
これはガチ
想像力の欠けた引きこもりアスペが書いた妄想
これはガチ
532デフォルトの名無しさん
2020/10/10(土) 22:36:40.03ID:6sdqDrQt TSスレだから、TSマンセー、型マンセーな奴の echo chamber になってるだけだぞって事。
TSは悪い言語でもないが、お前がら思ってるほどJSも酷くない。
だから数あるAltJS、勿論TypeScriptもそれに含まれるが、それでもJSを殺しきれない。
型で恩恵受けるのは、スモークテストまでだろ。
そもそも変数名みれば型なんて自明だし、そうじゃないのが問題。
そして関数を小さく、というのがほぼ最強で、そもそも規模が小さければ変数の型が分からないなんて事はない。
型に囚われてる奴は、型の先、つまり、型が有ろうがなかろうがどうにもならない世界が見えてないのだと思うよ。
この意味でRustもリソースリークを気にしすぎ。そもそもリークなんてしないし、面倒なら最初からGC使えばいいだけ。
TSはこの辺変に気取ってないからいい。
TSは悪い言語でもないが、お前がら思ってるほどJSも酷くない。
だから数あるAltJS、勿論TypeScriptもそれに含まれるが、それでもJSを殺しきれない。
型で恩恵受けるのは、スモークテストまでだろ。
そもそも変数名みれば型なんて自明だし、そうじゃないのが問題。
そして関数を小さく、というのがほぼ最強で、そもそも規模が小さければ変数の型が分からないなんて事はない。
型に囚われてる奴は、型の先、つまり、型が有ろうがなかろうがどうにもならない世界が見えてないのだと思うよ。
この意味でRustもリソースリークを気にしすぎ。そもそもリークなんてしないし、面倒なら最初からGC使えばいいだけ。
TSはこの辺変に気取ってないからいい。
533デフォルトの名無しさん
2020/10/10(土) 22:43:14.81ID:A0BwGHo+ まあ自分のコードだけで完結する世界で閉じこもってる分にはそれでいいんじゃない
534デフォルトの名無しさん
2020/10/10(土) 22:43:43.59ID:myt/k5c7 >>532
> そもそも変数名みれば型なんて自明
ハンガリアン信者の方ですか?
こんなこという奴の久々に見たわ
> そもそも規模が小さければ変数の型が分からないなんて事はない
ほんと自分の都合のいい側面しか見えてないよな
俺は困らないからJSでいい論は全てゴミ
想像力の欠けた引きこもりアスペが書いた妄想
この通りやンけ!
> そもそも変数名みれば型なんて自明
ハンガリアン信者の方ですか?
こんなこという奴の久々に見たわ
> そもそも規模が小さければ変数の型が分からないなんて事はない
ほんと自分の都合のいい側面しか見えてないよな
俺は困らないからJSでいい論は全てゴミ
想像力の欠けた引きこもりアスペが書いた妄想
この通りやンけ!
535デフォルトの名無しさん
2020/10/10(土) 22:48:34.65ID:6sdqDrQt >>530
OOPを神格化している奴がゴミなのは認める。Javaの連中が特にそう。
そして俺はそうじゃない。
ただな、DOMとかその辺が酷くて、OOPの恩恵を小さいコードでは得られないのはOOPを学ぶ上では痛いと思う。
Javaみたいにたった50行のコードにOOP強いて余計に意味不明になるのも問題だが、
自作コードのみでOOPの恩恵が受けられるのは3k行程度以上必要で、
そこまでOOPを囓れないでいるのもまた問題。
正直、ここにいるお前らの半分以上はOOPを正しく理解出来てないと思うよ。
ただ、それでも書けるところが良いところなんだが。
OOPは大規模コードの整理術であって、そもそも大規模化しないのならそれが大正義だ。
OOPを神格化している奴がゴミなのは認める。Javaの連中が特にそう。
そして俺はそうじゃない。
ただな、DOMとかその辺が酷くて、OOPの恩恵を小さいコードでは得られないのはOOPを学ぶ上では痛いと思う。
Javaみたいにたった50行のコードにOOP強いて余計に意味不明になるのも問題だが、
自作コードのみでOOPの恩恵が受けられるのは3k行程度以上必要で、
そこまでOOPを囓れないでいるのもまた問題。
正直、ここにいるお前らの半分以上はOOPを正しく理解出来てないと思うよ。
ただ、それでも書けるところが良いところなんだが。
OOPは大規模コードの整理術であって、そもそも大規模化しないのならそれが大正義だ。
536デフォルトの名無しさん
2020/10/10(土) 22:57:06.91ID:6sdqDrQt >>534
それはそもそも読み方を間違ってんだよ。
関数なんて大体20行程度だし、問題になるにしてもI/Fだけ。
ただそれ以前に、俺はサイトのmimnify済みのJSでも割と読めてしまうことに気づいてしまった。
「訳の分からないことをやってないこと」が重要で、そうじゃなければ追えるんだよ。
だから、初心者のコードほど読めない。これは事実。
それはそもそも読み方を間違ってんだよ。
関数なんて大体20行程度だし、問題になるにしてもI/Fだけ。
ただそれ以前に、俺はサイトのmimnify済みのJSでも割と読めてしまうことに気づいてしまった。
「訳の分からないことをやってないこと」が重要で、そうじゃなければ追えるんだよ。
だから、初心者のコードほど読めない。これは事実。
537デフォルトの名無しさん
2020/10/10(土) 23:00:39.67ID:myt/k5c7 >>536
世界中のプログラマーが関数なんて大体20行程度で訳の分からないことをやってないコードを書いてくれる理想郷にお住まいなのであれば、TSはいらないだろうね
世界中のプログラマーが関数なんて大体20行程度で訳の分からないことをやってないコードを書いてくれる理想郷にお住まいなのであれば、TSはいらないだろうね
538デフォルトの名無しさん
2020/10/10(土) 23:10:25.88ID:6sdqDrQt >>537
逆だろ。そういう理想郷を作るようにお互い努力するんだろ。
そしてTSはJSよりはそれを目指していると思うが。
関数が20行ってのはGoogleかnpmのコーディングルールに有ったはず。
コードレビューする時に「パワポ1画面に入らないような関数を書くな」だった。
実際、そこまで短くすれば、訳の分からない複雑なことは出来なくなるから、確かに効くんだよ。
逆だろ。そういう理想郷を作るようにお互い努力するんだろ。
そしてTSはJSよりはそれを目指していると思うが。
関数が20行ってのはGoogleかnpmのコーディングルールに有ったはず。
コードレビューする時に「パワポ1画面に入らないような関数を書くな」だった。
実際、そこまで短くすれば、訳の分からない複雑なことは出来なくなるから、確かに効くんだよ。
539デフォルトの名無しさん
2020/10/10(土) 23:25:22.20ID:BjcbKuib TS は、もっと後でよい
Ruby 3.0 で型推論が入ることになったけど、作者のMatz が、
型を入れると難しすぎて、初心者が簡単にプログラミングできなくなると言ってた
型はプロ向き。
型があると、初心者のfirst choice にならない
Ruby 3.0 で型推論が入ることになったけど、作者のMatz が、
型を入れると難しすぎて、初心者が簡単にプログラミングできなくなると言ってた
型はプロ向き。
型があると、初心者のfirst choice にならない
540デフォルトの名無しさん
2020/10/10(土) 23:26:05.68ID:OZkIKLkD いや型がある方が楽やろ、ガイド付きやで?
541デフォルトの名無しさん
2020/10/10(土) 23:26:47.91ID:OZkIKLkD コンパイルエラーで検知できずに動かしてみるまでわかんないとか…
542デフォルトの名無しさん
2020/10/10(土) 23:37:08.35ID:6sdqDrQt ついでに言っておくと、多分TSの「型」ってのはC++やRustの連中の「型」の範疇には入らない。
多分、連中からすると「型道」から外れてる、邪道だ、と見えると思う。
それは認識しておいた方がいい。
ただ、俺はむしろその方がいいと思っている。
C++のテンプレートなんて、
「これって型がなくてダックタイプでよければさらっと書いて終わりでしたよね?」ってのが多すぎる。
MSはそこら辺、極めて現実的でいい。
あと、既に言われているが、JSerなんてこの程度、というのは当たっている。
具体的に言えば、実力を過大評価している勘違い馬鹿が多い。
ただ、それは界隈のオンボロさと、楽勝さによっているのであって、環境を共有しているTSでも同じだよ。
とはいえ俺はこれも良いことだと思っている。
つまり技術レベルが低くても達成出来ることが(見た目)大きいわけだから。
だからCとかの連中は、なんでJSerがあんなに馬鹿でも世界が回るのか、
それはつまり、界隈のシステムが上手く出来てるからなんだけど、その辺学ぶべきだと思うよ。
多分、連中からすると「型道」から外れてる、邪道だ、と見えると思う。
それは認識しておいた方がいい。
ただ、俺はむしろその方がいいと思っている。
C++のテンプレートなんて、
「これって型がなくてダックタイプでよければさらっと書いて終わりでしたよね?」ってのが多すぎる。
MSはそこら辺、極めて現実的でいい。
あと、既に言われているが、JSerなんてこの程度、というのは当たっている。
具体的に言えば、実力を過大評価している勘違い馬鹿が多い。
ただ、それは界隈のオンボロさと、楽勝さによっているのであって、環境を共有しているTSでも同じだよ。
とはいえ俺はこれも良いことだと思っている。
つまり技術レベルが低くても達成出来ることが(見た目)大きいわけだから。
だからCとかの連中は、なんでJSerがあんなに馬鹿でも世界が回るのか、
それはつまり、界隈のシステムが上手く出来てるからなんだけど、その辺学ぶべきだと思うよ。
543デフォルトの名無しさん
2020/10/10(土) 23:43:46.38ID:6sdqDrQt >>539
難しくはならないが、煩雑にはなるんだよ。
そしてその煩雑さを利益が上回る為には、最低限ある程度の規模が必要で、
それは最初の最初の初心者が書くコードの規模(精々100行)では全然足りない。
だからってスクリプト言語で調子に乗ってガシガシ書いた後に型が欲しくなる時は確かにある。
その辺、従来は対応出来なかったが、TSはそこを上手く掬い取れた。
難しくはならないが、煩雑にはなるんだよ。
そしてその煩雑さを利益が上回る為には、最低限ある程度の規模が必要で、
それは最初の最初の初心者が書くコードの規模(精々100行)では全然足りない。
だからってスクリプト言語で調子に乗ってガシガシ書いた後に型が欲しくなる時は確かにある。
その辺、従来は対応出来なかったが、TSはそこを上手く掬い取れた。
544デフォルトの名無しさん
2020/10/10(土) 23:50:21.71ID:TSALDtkC JavaScriptで昔書いた3000行のコードをTypeScriptに直しているんだけど
いやまあ型は便利と思えるいろんな発見があったわ;;
いやまあ型は便利と思えるいろんな発見があったわ;;
545デフォルトの名無しさん
2020/10/10(土) 23:50:29.75ID:hWE3VueY 現在もっとも人気と将来性があって最強と言われる
Pythonに型がないのはどういう理由なんでしょうか?
Pythonに型がないのはどういう理由なんでしょうか?
546デフォルトの名無しさん
2020/10/10(土) 23:56:23.03ID:hWE3VueY パイソンはクラスは使えるようですね
547デフォルトの名無しさん
2020/10/11(日) 00:05:58.83ID:rXA2CZZq >>545
Pythonが受けているのは、馬鹿でも書けるから。これに尽きる。
Cだと、PCの物理的構造をある程度知ってないと理解しにくい面があるから。
ただ、Pythonが将来性があるかは疑問だと思う。
使われ続けるという意味では確実だが、プログラマを目指すのにいいか?と言われると微妙。
俺はPythonやってないが、最近かじろうとして、止めた。
String.replace(regexp)がなくて、RegExp(str)しかなく、ああこりゃ駄目だ、と思った。
なるほどPythonではクソコードしか書けない、というのは納得だ。
しかも3.0になってずいぶん経つのに、え?まだこんな所で揉めてるの?みたいな制限事項多すぎ。
ただまあ、明らかに君はそれ以前なのだから、グダグダ言わずにさっさと始めるべきだよ。
君のレベルなら、TSでもJSでもPythonでもどれでもいいと思うよ。
Pythonのクソさが分かるようになるまでに2年ほどはかかるだろうし。
Pythonが受けているのは、馬鹿でも書けるから。これに尽きる。
Cだと、PCの物理的構造をある程度知ってないと理解しにくい面があるから。
ただ、Pythonが将来性があるかは疑問だと思う。
使われ続けるという意味では確実だが、プログラマを目指すのにいいか?と言われると微妙。
俺はPythonやってないが、最近かじろうとして、止めた。
String.replace(regexp)がなくて、RegExp(str)しかなく、ああこりゃ駄目だ、と思った。
なるほどPythonではクソコードしか書けない、というのは納得だ。
しかも3.0になってずいぶん経つのに、え?まだこんな所で揉めてるの?みたいな制限事項多すぎ。
ただまあ、明らかに君はそれ以前なのだから、グダグダ言わずにさっさと始めるべきだよ。
君のレベルなら、TSでもJSでもPythonでもどれでもいいと思うよ。
Pythonのクソさが分かるようになるまでに2年ほどはかかるだろうし。
548デフォルトの名無しさん
2020/10/11(日) 00:11:31.57ID:rXA2CZZq >>546
クラスが使える=オブジェクト指向が出来る、という意味では、
最近のプログラミング言語でそもそもOOP出来ないものは存在しない。
それほどまでにOOPは認められた存在だと言うこと。
ラムダも同様だが。(なおPythonのラムダには制限あり)
だから最近の言語はどれもこれも同じだ!と言われていて、実際そうなのだが、
敢えて違う言語を!とやったのがGo。
ただしGoは別方向にかなり糞なので初心者は止めた方がいい。(と思う)
ただ、実際はGoも結構初心者受けしている。特に形無しスクリプト言語上がりには。
クラスが使える=オブジェクト指向が出来る、という意味では、
最近のプログラミング言語でそもそもOOP出来ないものは存在しない。
それほどまでにOOPは認められた存在だと言うこと。
ラムダも同様だが。(なおPythonのラムダには制限あり)
だから最近の言語はどれもこれも同じだ!と言われていて、実際そうなのだが、
敢えて違う言語を!とやったのがGo。
ただしGoは別方向にかなり糞なので初心者は止めた方がいい。(と思う)
ただ、実際はGoも結構初心者受けしている。特に形無しスクリプト言語上がりには。
549デフォルトの名無しさん
2020/10/11(日) 00:24:04.47ID:n4TOsjKe Pythonは 機械学習関連のライブラリが充実していて 最強の地位は10年後も20年後もおそらく変わらないだろう とプログラミングに詳しい知り合いが言ってました。 マシンスペックも上がってきているので Python のようなスクリプト言語でも 十分に実行速度が発揮でき益々 需要が伸びる可能性が高いと聞きましたが。
550デフォルトの名無しさん
2020/10/11(日) 00:25:02.84ID:vIhtxp0O >>545
mypyというものがあってだな
mypyというものがあってだな
551デフォルトの名無しさん
2020/10/11(日) 00:34:52.32ID:y3zg5lZo スレチ
552デフォルトの名無しさん
2020/10/11(日) 00:49:43.03ID:rXA2CZZq >>549
ならその知り合いに聞けよ。ただそいつはヘボだと思うが。
Pythonが強いのはライブラリが揃っているからだが、今のところ実行速度が致命的に遅い。
それはCPUやGPUの性能向上程度では何ともならない。
機械学習なら結局のところは何回回せるかが勝負で、C比80-800倍遅いのだから話にならない。
だからCythonなんて物も出てくる。
ただしアルゴリズムを頻繁に書き換えるとなると違う。
ちゃっちゃと書き換え、夜流して朝結果を回収、夕方までにプログラムを変更してまた夜流す、
という繰り返しなら、「新しいプログラムがいつ出来るか」が勝負となり、当然スクリプト言語の方が有利だ。
ただ、これが出来る学生なんてなかなかいないと思うし、そこまで行くのなら多分Cも普通に使える。
そもそも機械学習ならそんなにアルゴリズムも変えないはずだし。
だから今でもガチの計算機工学科ではCもやってるだろ。
Cだと1時間で結果が出るのにPythonだと3日かかります、では研究の進捗も全然違ってしまう。
だから用途に合わせて使い分けることが必要で、
はっきり言ってCも大して難しくもないからそういう奴等はCを最初から学ぶようになってる。
PythonやRuby界隈が高速化を目指さないのは俺には完全に疑問だ。
何だかんだで今後とも速度は重要であり、正義だ。
Rubyなんて死にかかってるが、JSと同程度の速度が得られれば、復活するとも思っている。
ただ、Matzもその周りもそれをしようとしないんだな。クソ言語なんてもう要らないのに。
TSはその点、JSの実行速度と、スクリプト言語の弱点、
「調子乗って書いてたらグダグダになってきてヤバイっす」を型付加により多少は緩和出来る、という点でかなり立ち位置はいい。
しかもJSも今のところ死ぬ感じはないから、TSも勿論死なない。
一般的にはJSerは次第にTSerになっていくと見られているが、これも概ね正しいだろう。
確かにTSは駄目な点がない。
(界隈の駄目な点をJSからモロに受け継いでいるが)
ならその知り合いに聞けよ。ただそいつはヘボだと思うが。
Pythonが強いのはライブラリが揃っているからだが、今のところ実行速度が致命的に遅い。
それはCPUやGPUの性能向上程度では何ともならない。
機械学習なら結局のところは何回回せるかが勝負で、C比80-800倍遅いのだから話にならない。
だからCythonなんて物も出てくる。
ただしアルゴリズムを頻繁に書き換えるとなると違う。
ちゃっちゃと書き換え、夜流して朝結果を回収、夕方までにプログラムを変更してまた夜流す、
という繰り返しなら、「新しいプログラムがいつ出来るか」が勝負となり、当然スクリプト言語の方が有利だ。
ただ、これが出来る学生なんてなかなかいないと思うし、そこまで行くのなら多分Cも普通に使える。
そもそも機械学習ならそんなにアルゴリズムも変えないはずだし。
だから今でもガチの計算機工学科ではCもやってるだろ。
Cだと1時間で結果が出るのにPythonだと3日かかります、では研究の進捗も全然違ってしまう。
だから用途に合わせて使い分けることが必要で、
はっきり言ってCも大して難しくもないからそういう奴等はCを最初から学ぶようになってる。
PythonやRuby界隈が高速化を目指さないのは俺には完全に疑問だ。
何だかんだで今後とも速度は重要であり、正義だ。
Rubyなんて死にかかってるが、JSと同程度の速度が得られれば、復活するとも思っている。
ただ、Matzもその周りもそれをしようとしないんだな。クソ言語なんてもう要らないのに。
TSはその点、JSの実行速度と、スクリプト言語の弱点、
「調子乗って書いてたらグダグダになってきてヤバイっす」を型付加により多少は緩和出来る、という点でかなり立ち位置はいい。
しかもJSも今のところ死ぬ感じはないから、TSも勿論死なない。
一般的にはJSerは次第にTSerになっていくと見られているが、これも概ね正しいだろう。
確かにTSは駄目な点がない。
(界隈の駄目な点をJSからモロに受け継いでいるが)
553デフォルトの名無しさん
2020/10/11(日) 00:50:50.85ID:vIhtxp0O 型無し糞言語は死あるのみ
型推論でスマートに型サポートを受けるのが今のトレンドだよ
型推論でスマートに型サポートを受けるのが今のトレンドだよ
554デフォルトの名無しさん
2020/10/11(日) 01:01:08.81ID:sfgrEAk/ 質問ですが
interface IPoint {
x: number;
y: number;
}
があるとして、(例えば)一致判定関数を書く場合、
function isequal(p1: IPoint, p2: IPoint) { return (p1.x == p2.y && p1.y == y2.y); }
function isequal<T extends IPoint>(p1: T, p2: T) { return (p1.x == p2.y && p1.y == y2.y); }
はどっちが良いの?
どっちもプロパティー{ x: number, y: number }を持つ任意のオブジェクトを受け入れるので同等に見えまつ、
interface IPoint {
x: number;
y: number;
}
があるとして、(例えば)一致判定関数を書く場合、
function isequal(p1: IPoint, p2: IPoint) { return (p1.x == p2.y && p1.y == y2.y); }
function isequal<T extends IPoint>(p1: T, p2: T) { return (p1.x == p2.y && p1.y == y2.y); }
はどっちが良いの?
どっちもプロパティー{ x: number, y: number }を持つ任意のオブジェクトを受け入れるので同等に見えまつ、
555デフォルトの名無しさん
2020/10/11(日) 01:02:20.20ID:sfgrEAk/ 戻り値を忘れたorz
: boolean
型推論って便利ですよね、、、
: boolean
型推論って便利ですよね、、、
556539
2020/10/11(日) 01:27:53.11ID:B+MSoWxK YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
Python, PHP, JavaScript などを絶対に言わない
初心者のfirst choice としては難しすぎる。
挫折確率が高すぎる
ただ年末に、Ruby 3.0 で型推論が入るから、
KENTA も、この方針を変えるかも知れない
大事件勃発!
Ruby on Rails に頼っている、すべての学校の方針が変わってしまう
ただ、first choice がGo と言うのは、絶対に無理
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
Python, PHP, JavaScript などを絶対に言わない
初心者のfirst choice としては難しすぎる。
挫折確率が高すぎる
ただ年末に、Ruby 3.0 で型推論が入るから、
KENTA も、この方針を変えるかも知れない
大事件勃発!
Ruby on Rails に頼っている、すべての学校の方針が変わってしまう
ただ、first choice がGo と言うのは、絶対に無理
557デフォルトの名無しさん
2020/10/11(日) 01:46:46.27ID:+wOaiLh4 >>554
この場合は多分同等なのでシンプルな前者で良い
後者はTを他の箇所(戻り値やコールバック関数の引数など)でも使う場合に適していることがある
例えば
function double<T extends IPoint>(p: T): T {
p.x *= 2;
p.y *= 2;
return p;
}
とか
function check<T extends IPoint>(p: T, validator: (p: T) => boolean): void {
if (!validator(p)) { throw new Error('...'); }
}
とか
ただしこれらの場合でも必ずしもextendsが適しているとは限らないので注意(特に上の例はかなり適当なので)
この場合は多分同等なのでシンプルな前者で良い
後者はTを他の箇所(戻り値やコールバック関数の引数など)でも使う場合に適していることがある
例えば
function double<T extends IPoint>(p: T): T {
p.x *= 2;
p.y *= 2;
return p;
}
とか
function check<T extends IPoint>(p: T, validator: (p: T) => boolean): void {
if (!validator(p)) { throw new Error('...'); }
}
とか
ただしこれらの場合でも必ずしもextendsが適しているとは限らないので注意(特に上の例はかなり適当なので)
558デフォルトの名無しさん
2020/10/11(日) 06:43:46.76ID:vDn4Pmub Pythonは型を書いてもインタプリタがそれを無視して実行してくれる
高速に実行したければPyPy使えばネイティブコードに近い速度で実行出来るしmypyで型チェックも出来る
JavaScriptで型を書くと単に構文エラーになるだけだが、その内無視して実行してくれる様になるだろう
そうなったらTypeScriptは要らなくなる
高速に実行したければPyPy使えばネイティブコードに近い速度で実行出来るしmypyで型チェックも出来る
JavaScriptで型を書くと単に構文エラーになるだけだが、その内無視して実行してくれる様になるだろう
そうなったらTypeScriptは要らなくなる
559デフォルトの名無しさん
2020/10/11(日) 07:10:15.21ID:qONvW7Si 妄想おつ
560デフォルトの名無しさん
2020/10/11(日) 07:22:42.40ID:vDn4Pmub Pythonみたいに動的型言語に型アノテーションを追加する事が主流になるだろう
Union型は動的型だから出来る事で、完全に静的型にするとC++みたいになってしまう
動的型+型アノテーションは良いとこ取りで、プロから初心者まで皆が満足出来る
Union型は動的型だから出来る事で、完全に静的型にするとC++みたいになってしまう
動的型+型アノテーションは良いとこ取りで、プロから初心者まで皆が満足出来る
561デフォルトの名無しさん
2020/10/11(日) 07:34:29.67ID:6reX+khV Pythonは10年前にやったときは凄い言語機能だと思ったけど、それからあんまり進化しなくて今はJSにすら言語機能的には劣ってる。Pythonの良いとこ他の言語も取り込んじゃったからね。
でもそれとライブラリが充実してるってのは別問題で、このライブラリの充実っぷりがJS|TSにもあったら天下取れるのになぁと思う。
機械学習はライブラリの最適化がキモで言語の速度なんてほとんど関係ないし
でもそれとライブラリが充実してるってのは別問題で、このライブラリの充実っぷりがJS|TSにもあったら天下取れるのになぁと思う。
機械学習はライブラリの最適化がキモで言語の速度なんてほとんど関係ないし
562デフォルトの名無しさん
2020/10/11(日) 08:43:37.68ID:AhI6YFfN なんどもコードの書き換えが必要な機械学習において
Pythonのような可読性にすぐれ、少ないコードで実行できる言語はが必要不可欠なのよ。
Cythonを使えば実行速度もC/C++と変わらないしね。
JavaScriptはTypeScriptとして生き残ると思われる。
Pythonのような可読性にすぐれ、少ないコードで実行できる言語はが必要不可欠なのよ。
Cythonを使えば実行速度もC/C++と変わらないしね。
JavaScriptはTypeScriptとして生き残ると思われる。
563デフォルトの名無しさん
2020/10/11(日) 08:44:44.80ID:AhI6YFfN >>556
そのYouTubeはPythonとJavaScriptで作られているという皮肉
そのYouTubeはPythonとJavaScriptで作られているという皮肉
564デフォルトの名無しさん
2020/10/11(日) 08:59:02.53ID:rXA2CZZq >>560
最近の初心者がすぐ「俺がやってる言語スゲー、俺スゲー」なポジショントークに走る理由が分からん。
Pythonが良かろうが悪かろうが、お前の実績でもなかろうに。
結局のところ、「○○言語スゲー」をやってる奴は、「他言語なんて絶対学びたくないマン」であって、
それを正当化する為に言い訳をしているようにしか見えん。
それは549の「知り合い」も同じ。
ただ>>554が典型的な「型の問題点」で、
規模的に「見りゃ分かるだろ」な場合でも、型あり言語は型を書くことを強制され、
結果的に煩雑なコードになってしまっていた。
それ、JSで
function isEqualPoint(p1,p2) { return (p1.x === p2.x && p1.y === p2.y); }
だったら、悩む必要もなく、その先にさっさと進めてただろ、という話。(※)
普通の頭してたらこれで十分だ。
ちなみに(メソッドではない関数で)isEqualは短すぎ。
isEqualPointはお前らが大嫌いなハンガリアンだが、どう見てもPointを受け取る前提で、そうじゃなきゃエラーだと分かる。
それを型を書いてコンパイラにやらせるのがTSで、目で見て落とすのがハンガリアン。
ただ、コードの精度を上げたいなら併用すべきで、
形無しのisEqualというのは.NETみたいにisEqualインタフェースを全部の型に対して供給し、
isEqualを持っている型はこれ使えます、てな事をやるために使う。
ただこれは.NETは世界の全てがOOP前提だから出来るのであって、JS界隈ではかなり無理。
そしてそれ以前に、isEqualはPointのメソッドとして実装すべき。
メソッドであればそもそもPoint以外を与えようがなくなるし、見た目もハンガリアン同様にエラーを検出出来る。
そしてインタフェースへの拡張も見えてくる。
どうしても野良関数にしたければ、ハンガリアンにしておく方が無難だと思うが。
なおOOPの問題点は根本的にここら辺で、
この程度のどうでもいい規模しか書けない初心者にも無駄にいちいち考えることを強いて手を止めてしまう。
このレベルならグダグダ言わずに何とでも書いてどんどん先に進んだ方がいい。
どうせ今書いてるコードなんてゴミで、後から使える事はない。
最近の初心者がすぐ「俺がやってる言語スゲー、俺スゲー」なポジショントークに走る理由が分からん。
Pythonが良かろうが悪かろうが、お前の実績でもなかろうに。
結局のところ、「○○言語スゲー」をやってる奴は、「他言語なんて絶対学びたくないマン」であって、
それを正当化する為に言い訳をしているようにしか見えん。
それは549の「知り合い」も同じ。
ただ>>554が典型的な「型の問題点」で、
規模的に「見りゃ分かるだろ」な場合でも、型あり言語は型を書くことを強制され、
結果的に煩雑なコードになってしまっていた。
それ、JSで
function isEqualPoint(p1,p2) { return (p1.x === p2.x && p1.y === p2.y); }
だったら、悩む必要もなく、その先にさっさと進めてただろ、という話。(※)
普通の頭してたらこれで十分だ。
ちなみに(メソッドではない関数で)isEqualは短すぎ。
isEqualPointはお前らが大嫌いなハンガリアンだが、どう見てもPointを受け取る前提で、そうじゃなきゃエラーだと分かる。
それを型を書いてコンパイラにやらせるのがTSで、目で見て落とすのがハンガリアン。
ただ、コードの精度を上げたいなら併用すべきで、
形無しのisEqualというのは.NETみたいにisEqualインタフェースを全部の型に対して供給し、
isEqualを持っている型はこれ使えます、てな事をやるために使う。
ただこれは.NETは世界の全てがOOP前提だから出来るのであって、JS界隈ではかなり無理。
そしてそれ以前に、isEqualはPointのメソッドとして実装すべき。
メソッドであればそもそもPoint以外を与えようがなくなるし、見た目もハンガリアン同様にエラーを検出出来る。
そしてインタフェースへの拡張も見えてくる。
どうしても野良関数にしたければ、ハンガリアンにしておく方が無難だと思うが。
なおOOPの問題点は根本的にここら辺で、
この程度のどうでもいい規模しか書けない初心者にも無駄にいちいち考えることを強いて手を止めてしまう。
このレベルならグダグダ言わずに何とでも書いてどんどん先に進んだ方がいい。
どうせ今書いてるコードなんてゴミで、後から使える事はない。
565デフォルトの名無しさん
2020/10/11(日) 08:59:27.04ID:rXA2CZZq 少し遠回りしたが話を※の時点に戻すと、
だから「全部について型を書け」というのは少々煩雑で、型あり言語は型推論で型を書かなくて良い方向に動いてる。
逆に、形無し言語は型をアノテートすることで、コンパイル時に落とせる方向に動いてる。
結果的に、どっちも同じような状況になりつつある。
落としどころは多分、C#の「ローカルは型推論、それ以外は型を書け」がまあ妥当なラインなのだろう。
だから初心者でこの辺の塩梅が分からないのなら、C#から入るのもありだと思うけど。
現実的にバランスが取れた仕様にはなってる。
>>561
JSが取り込んだPythonの良い所って何?
そんなの初耳だが。
そもそもPythonが褒められてる点なんてマジで何一つないと思うが。
(ただし俺は10年も使ってないので歴史的経緯はほぼ知らんが)
JS|TSが天下を取る為に必要なのは「同期」だよ。
asyncとかじゃなくて、普通の「同期」の方が分かりやすいし、実際スクリプト言語が担当する分野ではほぼそれでいい。
c10k問題等には非同期が有利なのは事実だが、見た目の分かり易さは「同期」の方が断然いい。
「それ、同期だったらそもそも理解する必要すらなくて、上から順に実行される、で済みますよね?」が多すぎる。
ただ、「非同期」は最早宗教だから、「同期」を入れることはないのだろうけどね。
「同期」が入れば、CPUリソースが厳しいサーバ側のPHP/Ruby/(ほぼいないが)Pythonの半分ほどはNodeに移行するだろう。
(実際、Goがその界隈で流行ってるのも、大した手間をかけずに快速が得られるからであって)
また、普通のスクリプト業務、つまりPythonが蔓延っている分野でも、
Python同様に簡単に書け、速度は16倍なのだから、当然普段使いする奴が出てくる。(というか俺がそれ欲しい)
そうすれば、ライブラリも充実していく。
「同期」がないから普段使いしにくいのがとにかく問題。
逆にPythonは実行速度が問題で、現実的な文句はほぼこれに尽きる。
だから彼等が何故高速化を目指さないのかは俺には本当に謎。
だから「全部について型を書け」というのは少々煩雑で、型あり言語は型推論で型を書かなくて良い方向に動いてる。
逆に、形無し言語は型をアノテートすることで、コンパイル時に落とせる方向に動いてる。
結果的に、どっちも同じような状況になりつつある。
落としどころは多分、C#の「ローカルは型推論、それ以外は型を書け」がまあ妥当なラインなのだろう。
だから初心者でこの辺の塩梅が分からないのなら、C#から入るのもありだと思うけど。
現実的にバランスが取れた仕様にはなってる。
>>561
JSが取り込んだPythonの良い所って何?
そんなの初耳だが。
そもそもPythonが褒められてる点なんてマジで何一つないと思うが。
(ただし俺は10年も使ってないので歴史的経緯はほぼ知らんが)
JS|TSが天下を取る為に必要なのは「同期」だよ。
asyncとかじゃなくて、普通の「同期」の方が分かりやすいし、実際スクリプト言語が担当する分野ではほぼそれでいい。
c10k問題等には非同期が有利なのは事実だが、見た目の分かり易さは「同期」の方が断然いい。
「それ、同期だったらそもそも理解する必要すらなくて、上から順に実行される、で済みますよね?」が多すぎる。
ただ、「非同期」は最早宗教だから、「同期」を入れることはないのだろうけどね。
「同期」が入れば、CPUリソースが厳しいサーバ側のPHP/Ruby/(ほぼいないが)Pythonの半分ほどはNodeに移行するだろう。
(実際、Goがその界隈で流行ってるのも、大した手間をかけずに快速が得られるからであって)
また、普通のスクリプト業務、つまりPythonが蔓延っている分野でも、
Python同様に簡単に書け、速度は16倍なのだから、当然普段使いする奴が出てくる。(というか俺がそれ欲しい)
そうすれば、ライブラリも充実していく。
「同期」がないから普段使いしにくいのがとにかく問題。
逆にPythonは実行速度が問題で、現実的な文句はほぼこれに尽きる。
だから彼等が何故高速化を目指さないのかは俺には本当に謎。
566デフォルトの名無しさん
2020/10/11(日) 09:13:49.37ID:/RVlCgv+ このおっさん長文書く割に知識浅いな
567デフォルトの名無しさん
2020/10/11(日) 09:15:26.14ID:xz6PduLx568デフォルトの名無しさん
2020/10/11(日) 09:29:24.51ID:AhI6YFfN 時代についていけない老害エンジニアがC/C++を必死に推してるように思うのだが
569デフォルトの名無しさん
2020/10/11(日) 09:29:47.66ID:vIhtxp0O >>566
浅いというか個人 or 小規模開発しかしたことなさそう
浅いというか個人 or 小規模開発しかしたことなさそう
570デフォルトの名無しさん
2020/10/11(日) 09:36:16.20ID:AhI6YFfN Pythonの速度が遅いと言ってるのは情弱
Cで書いたライブラリに受け渡せばC言語の速度で実行できるし
Cython使えばPythonのコードほぼそのままC言語の速度がでる
Pythonで困るのはGUIくらいだろ?
Cで書いたライブラリに受け渡せばC言語の速度で実行できるし
Cython使えばPythonのコードほぼそのままC言語の速度がでる
Pythonで困るのはGUIくらいだろ?
571デフォルトの名無しさん
2020/10/11(日) 09:40:52.87ID:sfgrEAk/572デフォルトの名無しさん
2020/10/11(日) 09:45:09.23ID:sfgrEAk/ 次の質問なのですが、
タイプガードとか書くときにクラス(やハッシュ)にプロパティーが有るのか無いのか調べると思うのですが
つぎのどっちの書き方が良さげ?
(1) 'someProperty' in foo
(2) foo.someProperty != undefined
タイプガードとか書くときにクラス(やハッシュ)にプロパティーが有るのか無いのか調べると思うのですが
つぎのどっちの書き方が良さげ?
(1) 'someProperty' in foo
(2) foo.someProperty != undefined
573デフォルトの名無しさん
2020/10/11(日) 09:45:54.29ID:sfgrEAk/ なんとなく(2)の方が早いのではないか、という気がするのですが気のせい??
574デフォルトの名無しさん
2020/10/11(日) 09:57:22.72ID:rXA2CZZq >>570
俺もCのDLLをスクリプト言語から呼ぶ、というのが現実的な解だとは思う。
ただ、Pythonの問題はそこじゃない。
演算を変えたい場合は結局Cを書く羽目になるから、結局Cも出来ないと駄目。
そしてCは仕様が小さいので、本気で正しく学べば簡単な部類だ。
GUIは今は現実的にHTMLがダントツで良く、何から何までWebアプリ化してる。
なら今ならElectronの方が相性がいい。当然JS/TS。
サーバ用途でPython使ったら大体は速度の問題にブチ当たるが、
これは「お気楽に書ける分遅い」というスクリプト言語の特有の問題であり、Rubyも同様で、回避手段がない。
(Nodeはgoogleの努力で例外的に異常に速いだけ)
だからPythonは「何一ついいところはないが、何も悪くもない」という、ある意味「絶対的な2番手」だ。
だからこそ「絶対他言語を学びたくないマン」はこれに拘り、ポジショントークを繰り返す。
ただ、今時の言語なんてどれも似たようなもので、実際そこに拘る理由もなく、普通の奴は易々と言語の壁なんて飛び越えていく。
普通はこちらを目指すべきだと思うけど。
PHPもクソと言われて久しいが、いまだに蔓延っているのは、あの用途では絶対的に便利だから。
それはjQueryも同じ。
俺もCのDLLをスクリプト言語から呼ぶ、というのが現実的な解だとは思う。
ただ、Pythonの問題はそこじゃない。
演算を変えたい場合は結局Cを書く羽目になるから、結局Cも出来ないと駄目。
そしてCは仕様が小さいので、本気で正しく学べば簡単な部類だ。
GUIは今は現実的にHTMLがダントツで良く、何から何までWebアプリ化してる。
なら今ならElectronの方が相性がいい。当然JS/TS。
サーバ用途でPython使ったら大体は速度の問題にブチ当たるが、
これは「お気楽に書ける分遅い」というスクリプト言語の特有の問題であり、Rubyも同様で、回避手段がない。
(Nodeはgoogleの努力で例外的に異常に速いだけ)
だからPythonは「何一ついいところはないが、何も悪くもない」という、ある意味「絶対的な2番手」だ。
だからこそ「絶対他言語を学びたくないマン」はこれに拘り、ポジショントークを繰り返す。
ただ、今時の言語なんてどれも似たようなもので、実際そこに拘る理由もなく、普通の奴は易々と言語の壁なんて飛び越えていく。
普通はこちらを目指すべきだと思うけど。
PHPもクソと言われて久しいが、いまだに蔓延っているのは、あの用途では絶対的に便利だから。
それはjQueryも同じ。
575デフォルトの名無しさん
2020/10/11(日) 09:59:21.79ID:vIhtxp0O576572
2020/10/11(日) 10:02:33.58ID:sfgrEAk/ ていうか自己解決しますた、
e: Event を e: MouseEvent として扱ってよいか(ダウンキャスト可能か)どうかを
確認するとき、(1)の書き方でないと
MouseEventにあってEventに無いプロパティー
(e.offsetXやe.offsetY())の有無の判定が書けませんぬ、
e: Event を e: MouseEvent として扱ってよいか(ダウンキャスト可能か)どうかを
確認するとき、(1)の書き方でないと
MouseEventにあってEventに無いプロパティー
(e.offsetXやe.offsetY())の有無の判定が書けませんぬ、
577デフォルトの名無しさん
2020/10/11(日) 10:15:47.58ID:AhI6YFfN >>574
機械学習の勉強してみ。演算やアルゴリズムなんて二の次 三の次だから。
とにかく何度もコードを書き換えてひたすらパラメーターと変数の調整作業になる。
言語の実行速度よりコードの記述速度の方が大事になる。
この時はじめて「Pythonさん。なめててごめんなさい」って言いたくなる。
機械学習の勉強してみ。演算やアルゴリズムなんて二の次 三の次だから。
とにかく何度もコードを書き換えてひたすらパラメーターと変数の調整作業になる。
言語の実行速度よりコードの記述速度の方が大事になる。
この時はじめて「Pythonさん。なめててごめんなさい」って言いたくなる。
578デフォルトの名無しさん
2020/10/11(日) 10:30:46.60ID:rXA2CZZq >>577
パラメータの変更しかしないのならそうだろうとしか。
俺は別にPythonを使うことが悪いとは言ってないぞ。
俺はJSを大変気に入っているが、それは「手抜きで書けるわりに速い」からだ。
だから俺はJSからCのDLLを呼びたいんだよ。
それがお前の場合はPythonなだけだろ。別に不思議でもないよ。
パラメータの変更しかしないのならそうだろうとしか。
俺は別にPythonを使うことが悪いとは言ってないぞ。
俺はJSを大変気に入っているが、それは「手抜きで書けるわりに速い」からだ。
だから俺はJSからCのDLLを呼びたいんだよ。
それがお前の場合はPythonなだけだろ。別に不思議でもないよ。
579デフォルトの名無しさん
2020/10/11(日) 10:37:24.45ID:AhI6YFfN580デフォルトの名無しさん
2020/10/11(日) 10:42:41.64ID:rXA2CZZq >>572
それはJSでは議論し尽くされた質問。多分ググッた方がいい。
会社で書く場合は多分コーディングルールでどっちにするか決まってる。
プロパティのありなしのチェックだけなら(1)の方が原理的に速い。
ただしJSの場合はundefinedという値を設定出来るので、その場合は(1)も(2)もアウトだが。
これはJSの仕様バグだが、この辺含めてJSは厳密な型管理には向いてない。
そもそも型無しなので当然だが。
>>576
そもそもダウンキャストが必要となってる時点でOOP的には邪道。
多分それは無駄にアップキャストしてるから。
OOP初心者あるあるの、張り切って無駄にOOPして余計に複雑になってるケースだと思うよ。
それも含めて頑張れでしかないが。
それはJSでは議論し尽くされた質問。多分ググッた方がいい。
会社で書く場合は多分コーディングルールでどっちにするか決まってる。
プロパティのありなしのチェックだけなら(1)の方が原理的に速い。
ただしJSの場合はundefinedという値を設定出来るので、その場合は(1)も(2)もアウトだが。
これはJSの仕様バグだが、この辺含めてJSは厳密な型管理には向いてない。
そもそも型無しなので当然だが。
>>576
そもそもダウンキャストが必要となってる時点でOOP的には邪道。
多分それは無駄にアップキャストしてるから。
OOP初心者あるあるの、張り切って無駄にOOPして余計に複雑になってるケースだと思うよ。
それも含めて頑張れでしかないが。
581デフォルトの名無しさん
2020/10/11(日) 10:52:20.91ID:rXA2CZZq >>579
ならお前はPython/Cythonで一生暮らすでいいだろ。
俺はC使えるからCythonを使うことはないし、
Pythonも色々糞だからJSで済むところはJSで行く。
だからCscriptはそこそこ良かったのだが、MSはこれを捨ててPowerShellという別糞言語押しなのは残念。
ならお前はPython/Cythonで一生暮らすでいいだろ。
俺はC使えるからCythonを使うことはないし、
Pythonも色々糞だからJSで済むところはJSで行く。
だからCscriptはそこそこ良かったのだが、MSはこれを捨ててPowerShellという別糞言語押しなのは残念。
582デフォルトの名無しさん
2020/10/11(日) 10:59:25.49ID:kZXFoyze >>547
>俺はPythonやってないが、最近かじろうとして、止めた。
>String.replace(regexp)がなくて、RegExp(str)しかなく、ああこりゃ駄目だ、と思った。
>なるほどPythonではクソコードしか書けない、というのは納得だ。
馬鹿ですね判ります
>俺はPythonやってないが、最近かじろうとして、止めた。
>String.replace(regexp)がなくて、RegExp(str)しかなく、ああこりゃ駄目だ、と思った。
>なるほどPythonではクソコードしか書けない、というのは納得だ。
馬鹿ですね判ります
583デフォルトの名無しさん
2020/10/11(日) 11:08:21.39ID:kZXFoyze >多分それは無駄にアップキャストしてるから。
型消去が必要な場面なんていくらでもあると思うが。
そもそもダウンキャストって動的な型判定でしかないんでOOPとは直交する概念だよな。
型消去が必要な場面なんていくらでもあると思うが。
そもそもダウンキャストって動的な型判定でしかないんでOOPとは直交する概念だよな。
584576
2020/10/11(日) 11:23:42.67ID:sfgrEAk/ 自己解決しますた、2
e: EventのMoveEventへのダウンキャスト可能性判定は
if (e instanceof MoveEvent) { ... }
で逝けるっぽい
こう書いたとき、VSCodeではブロックの中でe: MuseEventとしてのインテリセンスがばっちり利くスゲー;;
さらにいうと、
https://developer.mozilla.org/ja/docs/Web/API/Element/mousedown_event
の書き方をすると、addEventHandler()の宣言とラムダ式から型推論するらしく
イベントハンドラ内に入った時点で勝手にMouseEventとして扱われる(スゲー)^2
e: EventのMoveEventへのダウンキャスト可能性判定は
if (e instanceof MoveEvent) { ... }
で逝けるっぽい
こう書いたとき、VSCodeではブロックの中でe: MuseEventとしてのインテリセンスがばっちり利くスゲー;;
さらにいうと、
https://developer.mozilla.org/ja/docs/Web/API/Element/mousedown_event
の書き方をすると、addEventHandler()の宣言とラムダ式から型推論するらしく
イベントハンドラ内に入った時点で勝手にMouseEventとして扱われる(スゲー)^2
585576
2020/10/11(日) 11:25:20.20ID:sfgrEAk/586デフォルトの名無しさん
2020/10/11(日) 11:26:44.35ID:rXA2CZZq >>582
String.replaceとRegExp.exec(str)は明確に用途が異なる。
だからそのどちらを使ったかで何を目的にしてるかをコード上に残せる。
Pythonはそれが出来ないから糞、というだけ。
どうやらPython教の「そのやり方は一つであるべき」が根本的にある。
これが「数ある中からそれを選んだ、それを持って意図を残す」俺と決定的に合わない。
なおRubyも同様に「いろんなやり方があるべき」であり、Pythonはプログラミング言語の中ではかなり異端だと思う。
だからこそ受けている、というのはあるらしいが。
なおJS、String.search と Regexp.test 等、大体においてその状況では交換可能なメソッドは多々あるし、
Array.map/forEach/filter/reduceも、無理矢理やれば大体交換可能だ。
これについては俺は => はクロージャ無し、つまり外変数を掴めない仕様にするべきだったと思う。
そうすれば => で与えている限り「無理矢理交換」は出来なくなり、コードも読みやすくなるし、エラーも文法的に落とせた。
現状では「無理なことをしてないか目で確認」するしかなく、これは型アノテーションではどうにもならない。
だから目で落とすハンガリアンを馬鹿にしていて、でも => の仕様不備には全く文句を言わないのは、
同様にお前らも単なる馬鹿かポジショントークでしかないからだよ。
実際、 => で与える関数で外変数を掴まなければならないケースなんて半数以下だし、
その場合は function と長々と書く、でよかった。
String.replaceとRegExp.exec(str)は明確に用途が異なる。
だからそのどちらを使ったかで何を目的にしてるかをコード上に残せる。
Pythonはそれが出来ないから糞、というだけ。
どうやらPython教の「そのやり方は一つであるべき」が根本的にある。
これが「数ある中からそれを選んだ、それを持って意図を残す」俺と決定的に合わない。
なおRubyも同様に「いろんなやり方があるべき」であり、Pythonはプログラミング言語の中ではかなり異端だと思う。
だからこそ受けている、というのはあるらしいが。
なおJS、String.search と Regexp.test 等、大体においてその状況では交換可能なメソッドは多々あるし、
Array.map/forEach/filter/reduceも、無理矢理やれば大体交換可能だ。
これについては俺は => はクロージャ無し、つまり外変数を掴めない仕様にするべきだったと思う。
そうすれば => で与えている限り「無理矢理交換」は出来なくなり、コードも読みやすくなるし、エラーも文法的に落とせた。
現状では「無理なことをしてないか目で確認」するしかなく、これは型アノテーションではどうにもならない。
だから目で落とすハンガリアンを馬鹿にしていて、でも => の仕様不備には全く文句を言わないのは、
同様にお前らも単なる馬鹿かポジショントークでしかないからだよ。
実際、 => で与える関数で外変数を掴まなければならないケースなんて半数以下だし、
その場合は function と長々と書く、でよかった。
587デフォルトの名無しさん
2020/10/11(日) 11:37:03.05ID:rXA2CZZq >>585
それはその通りだが、そもそもHTMLの仕様がOOP前提ではないので継承構造が綺麗になってない。
それを無理矢理それっぽく見せかけているのがHTMLElement(というかDOM)だが、
ちょこちょこ例外的なのがあって統一的に扱いきれない。
多分割と早い段階で無理だと諦めると思うよ。それも含めて頑張れだが。
mozallaが悪いわけではなく、OOP前提で作られてない物を載せ直そうとしてるから無理があるんだ。
なら不整合な古い仕様はばっさり切っていった方がいいと思うが、それは互換性の問題で切れないらしい。
だから、今後とも直ることもないよ。
それはその通りだが、そもそもHTMLの仕様がOOP前提ではないので継承構造が綺麗になってない。
それを無理矢理それっぽく見せかけているのがHTMLElement(というかDOM)だが、
ちょこちょこ例外的なのがあって統一的に扱いきれない。
多分割と早い段階で無理だと諦めると思うよ。それも含めて頑張れだが。
mozallaが悪いわけではなく、OOP前提で作られてない物を載せ直そうとしてるから無理があるんだ。
なら不整合な古い仕様はばっさり切っていった方がいいと思うが、それは互換性の問題で切れないらしい。
だから、今後とも直ることもないよ。
588デフォルトの名無しさん
2020/10/11(日) 11:39:39.85ID:ZGWQTXgj >>570
PythonはOO機能が中途半端で型システムも貧弱だからアプリケーションのコアとなるドメインモデルの実装には使われない
Cythonでドメインロジック書くのはもっと非現実的
機械学習やデータ分析のようにコアとなる部分を汎用的にCでライブラリ化できるような用途には適してる
NetflixやUberのようなテクノロジ先進企業がアプリのコアからPython外して
機械学習を含むデータ分析系かシステム管理系に絞って使ってる理由
PythonはOO機能が中途半端で型システムも貧弱だからアプリケーションのコアとなるドメインモデルの実装には使われない
Cythonでドメインロジック書くのはもっと非現実的
機械学習やデータ分析のようにコアとなる部分を汎用的にCでライブラリ化できるような用途には適してる
NetflixやUberのようなテクノロジ先進企業がアプリのコアからPython外して
機械学習を含むデータ分析系かシステム管理系に絞って使ってる理由
589デフォルトの名無しさん
2020/10/11(日) 12:42:35.57ID:6reX+khV590デフォルトの名無しさん
2020/10/11(日) 12:57:09.09ID:AhI6YFfN >>561
記述が簡単。ライブラリが充実。これが最強の所以だよ。
コードの学習コストと記述に時間がかからない分、他に時間をさける。
機械学習、データ分析、科学系でPythonの最強はしばらく続くだろう。
今話題のディープラーニングにおいてもPyTorchが最強の座に着こうとしている。
大企業が多額の資金を投入してね。
JavaScriptもネットでは必須なのでPythonと肩を並べる言語になるだろう。
この2つを極めたものだけが将来生き残れる。jabaは10年後には消えてるだろうな。
記述が簡単。ライブラリが充実。これが最強の所以だよ。
コードの学習コストと記述に時間がかからない分、他に時間をさける。
機械学習、データ分析、科学系でPythonの最強はしばらく続くだろう。
今話題のディープラーニングにおいてもPyTorchが最強の座に着こうとしている。
大企業が多額の資金を投入してね。
JavaScriptもネットでは必須なのでPythonと肩を並べる言語になるだろう。
この2つを極めたものだけが将来生き残れる。jabaは10年後には消えてるだろうな。
591デフォルトの名無しさん
2020/10/11(日) 12:58:10.87ID:AhI6YFfN Javaねw
592デフォルトの名無しさん
2020/10/11(日) 13:01:56.22ID:rXA2CZZq >>589
外変数を掴む前提ならreduceは全てforEachで代替出来る。
逆に言うと、わざわざreduceを入れたのは、見た目immutableにしたいだけ。(戻り値をconstで受けられる)
しかし現状では与えた関数が外変数を変更していない、という確証が「文法的には」ない。
つまり、「見て判断」するしかない。
この辺がハンガリアンを馬鹿にしているお前らが理解出来てないところだ。
=> がクロージャ無しなら、
const tmp = arr.reduce( => );
において、tmp以外の変数に変更がないことを文法的に保証出来た。
これをせずに、immutableだあ、型でエラーが落とせるだあ、なんて言ってる時点で意味ねえ、というだけ。
もっと効率的にエラーを落とせる仕様は有ったって事だよ。
外変数を掴む前提ならreduceは全てforEachで代替出来る。
逆に言うと、わざわざreduceを入れたのは、見た目immutableにしたいだけ。(戻り値をconstで受けられる)
しかし現状では与えた関数が外変数を変更していない、という確証が「文法的には」ない。
つまり、「見て判断」するしかない。
この辺がハンガリアンを馬鹿にしているお前らが理解出来てないところだ。
=> がクロージャ無しなら、
const tmp = arr.reduce( => );
において、tmp以外の変数に変更がないことを文法的に保証出来た。
これをせずに、immutableだあ、型でエラーが落とせるだあ、なんて言ってる時点で意味ねえ、というだけ。
もっと効率的にエラーを落とせる仕様は有ったって事だよ。
593デフォルトの名無しさん
2020/10/11(日) 13:11:49.27ID:6reX+khV >>590
多分そのとおりなんだけどTS使いがPython使うとイライラするぜw
型情報もジェネリクスも貧弱だし、多少トリッキーでも短くて副作用のないコードを書くTS使いに対して、Python界隈は助長で副作用も使う簡易なコードを書く。
どっちが優れてるとは言わないけど。文化がかなり違うように感じる
多分そのとおりなんだけどTS使いがPython使うとイライラするぜw
型情報もジェネリクスも貧弱だし、多少トリッキーでも短くて副作用のないコードを書くTS使いに対して、Python界隈は助長で副作用も使う簡易なコードを書く。
どっちが優れてるとは言わないけど。文化がかなり違うように感じる
594デフォルトの名無しさん
2020/10/11(日) 13:22:19.94ID:rXA2CZZq >>590
Javaが10年後に消えることは原理的にない。
Javaが使われているインフラとかは10年更新だが、そのまま問題ないとかで20年とかに伸びたりしてる。
そして更新時、Javaのままにするか、思い切って他言語(C++等)にするかが問われるわけだが、
今現在はJavaのまま更新されているのが普通だと思う。
だから10年後も「今更新している案件」が更新案件として出てくる。
これはガチで20年分ほど積み上がっているから、書くかどうかはともかく、読める必要は10年後も確実にある。
Pythonは今のところ「何でも出来る」という意味で安牌だが、速度が遅いのがとにかく致命的。
何度も言ってるが、俺はPython陣営がここに消極的な理由がさっぱり分からない。
原理的にはJSと同程度までは行けるはずで、そうなれば完全に天下を取れる。
対してJSは勝手に速くしてもらえただけの棚ぼたではあるが、
そもそもGUIのHTMLとダントツに相性が良く、(元々JS用だから当たり前だが)
非同期が超絶ウザイながらもデスクトップアプリケーションまでに進出してきた。
Pythonが遅いままなら、JSが「同期」を出したらPythonを普通に殺せると思う。
少なくとも、今現在の言語としての出来は、JSの方が数段上だ。
それも分かってか、Python使いはPythonの「言語として」良い点なんて絶対に挙げないだろ。
ここでも無視されてる。実際、ないと思うし。
彼等にとっては使っている人数が多いこと自体が武器であり、それを目指しているからだ。
勿論これもありだが、Javaもそうだったが、これだとどうしても古くなっていく。
だから、仮にJavaが死ぬなら、同様に「古い」とされて死ぬのはPythonだろうね。
Javaが10年後に消えることは原理的にない。
Javaが使われているインフラとかは10年更新だが、そのまま問題ないとかで20年とかに伸びたりしてる。
そして更新時、Javaのままにするか、思い切って他言語(C++等)にするかが問われるわけだが、
今現在はJavaのまま更新されているのが普通だと思う。
だから10年後も「今更新している案件」が更新案件として出てくる。
これはガチで20年分ほど積み上がっているから、書くかどうかはともかく、読める必要は10年後も確実にある。
Pythonは今のところ「何でも出来る」という意味で安牌だが、速度が遅いのがとにかく致命的。
何度も言ってるが、俺はPython陣営がここに消極的な理由がさっぱり分からない。
原理的にはJSと同程度までは行けるはずで、そうなれば完全に天下を取れる。
対してJSは勝手に速くしてもらえただけの棚ぼたではあるが、
そもそもGUIのHTMLとダントツに相性が良く、(元々JS用だから当たり前だが)
非同期が超絶ウザイながらもデスクトップアプリケーションまでに進出してきた。
Pythonが遅いままなら、JSが「同期」を出したらPythonを普通に殺せると思う。
少なくとも、今現在の言語としての出来は、JSの方が数段上だ。
それも分かってか、Python使いはPythonの「言語として」良い点なんて絶対に挙げないだろ。
ここでも無視されてる。実際、ないと思うし。
彼等にとっては使っている人数が多いこと自体が武器であり、それを目指しているからだ。
勿論これもありだが、Javaもそうだったが、これだとどうしても古くなっていく。
だから、仮にJavaが死ぬなら、同様に「古い」とされて死ぬのはPythonだろうね。
595デフォルトの名無しさん
2020/10/11(日) 13:40:29.31ID:kiEWpQjt596デフォルトの名無しさん
2020/10/11(日) 13:42:20.42ID:AhI6YFfN >>594
PythonはJavaScriptの”中途半端”な速度を切り捨てて自由を手にしたのだ。
そもそも、処理速度がネックになるなんて単純計算を繰り返す場合がほとんどで
そんなもんライブラリに任せればいいんだよ。Pythonを使ってるのはプログラマだけじゃない。
科学者、数学者など他業種も多い。記述の簡単さ。ライブラリという遺産。大企業の投資。
すべてがPython最強を示している。
GUIはJavaScriptに軍配があがる。これに異を唱える奴はいないだろ。
JavaScriptはWEBで棲み分けができていて最強言語の一つだ。
そんなにPythonを逆恨みする必要はないよ。
PythonはJavaScriptの”中途半端”な速度を切り捨てて自由を手にしたのだ。
そもそも、処理速度がネックになるなんて単純計算を繰り返す場合がほとんどで
そんなもんライブラリに任せればいいんだよ。Pythonを使ってるのはプログラマだけじゃない。
科学者、数学者など他業種も多い。記述の簡単さ。ライブラリという遺産。大企業の投資。
すべてがPython最強を示している。
GUIはJavaScriptに軍配があがる。これに異を唱える奴はいないだろ。
JavaScriptはWEBで棲み分けができていて最強言語の一つだ。
そんなにPythonを逆恨みする必要はないよ。
597デフォルトの名無しさん
2020/10/11(日) 13:52:30.76ID:AhI6YFfN >>595
言語の記述が簡潔。これが一番だな。
パソコンよりスマホ。FLASHよりYouTube。マニュアル車よりオートマ。
人間は楽な方にながれる生き物。
処理に時間のかかるものはライブラリになげてスクリプト言語で記述。
これがこれからの流れだと思う。生産性もあげていかないと。
言語の記述が簡潔。これが一番だな。
パソコンよりスマホ。FLASHよりYouTube。マニュアル車よりオートマ。
人間は楽な方にながれる生き物。
処理に時間のかかるものはライブラリになげてスクリプト言語で記述。
これがこれからの流れだと思う。生産性もあげていかないと。
598デフォルトの名無しさん
2020/10/11(日) 13:57:45.46ID:AhI6YFfN 「ワシもCで苦労したんだから、お前ら若者も苦労せい」
↑
こんな考えの老害が生産性を著しく低下させてる
↑
こんな考えの老害が生産性を著しく低下させてる
599デフォルトの名無しさん
2020/10/11(日) 14:21:59.35ID:rXA2CZZq >>596
綺麗なだけのコードを書くことは実は簡単なんだよ。ただしそれは通常遅い。
だから処理系がそもそも速いって事がコードの美しさを保つ上でも重要ではある。
実際、Pythonから書き換えを迫られる場合はほぼ全て処理速度の問題だろ。
だから、
> 多少トリッキーでも短くて副作用のないコードを書くTS使いに対して、Python界隈は助長で副作用も使う簡易なコードを書く。 (>>593)
これの遠因もそこにある。トリッキーだが短いコードってのは通常、実行速度が遅い。
だからこれを許容出来るのは、速い処理系があるからこそ。
Pythonの場合はそもそも書けない可能性もあるが、書けたとしても遅いから使えない可能性もある。
トリッキーとは言わないが典型的なのは正規表現だ。
今現在正規表現は速いとは言えない状況で、「バックトラックを理解して速い正規表現を書く」という本末転倒なことをやらかしてるだろ。
あれも本来は「糞速い正規表現ルーチン」と「一番分かりやすい正規表現」で済むことでしかない。
ただ、今は現実的にそれが出来ないわけでさ。
同様に、正規表現で書けば至極単純なのを、indexOfやforとかで自前で探索してたりするのもそのため。
処理系の速さがコードの簡潔さ/美しさを下支えするものではあるんだよ。
だからつまり、「単純簡潔で分かりやすいが遅いコード」を許容する為には速度が不可欠で、
Pythonも速度対策すればこの辺が使えるようになって現実的な利用価値が上がるんだけどね。
それ以前に速度なんて考えてないコードばかりだから全体的に糞遅いのかもしれんが。
ただそれ以前に、JSもPythonと比べて難しい言語ではない。
Python界隈の戦略的には「Pythonこそ最易言語」であり、それ以外の意見は認められないのだろうけど、
いわゆるLL言語はどれもこれも簡単だし、大差ない。
JSにおいては「非同期」が無駄に嵌りポイントになってるから、
これさえなくなれば難易度はPythonよりもむしろ簡単になる。(文法が超絶簡素だし)
(ただし、無くなることはないとも思うが。非同期宗教酷すぎ)
綺麗なだけのコードを書くことは実は簡単なんだよ。ただしそれは通常遅い。
だから処理系がそもそも速いって事がコードの美しさを保つ上でも重要ではある。
実際、Pythonから書き換えを迫られる場合はほぼ全て処理速度の問題だろ。
だから、
> 多少トリッキーでも短くて副作用のないコードを書くTS使いに対して、Python界隈は助長で副作用も使う簡易なコードを書く。 (>>593)
これの遠因もそこにある。トリッキーだが短いコードってのは通常、実行速度が遅い。
だからこれを許容出来るのは、速い処理系があるからこそ。
Pythonの場合はそもそも書けない可能性もあるが、書けたとしても遅いから使えない可能性もある。
トリッキーとは言わないが典型的なのは正規表現だ。
今現在正規表現は速いとは言えない状況で、「バックトラックを理解して速い正規表現を書く」という本末転倒なことをやらかしてるだろ。
あれも本来は「糞速い正規表現ルーチン」と「一番分かりやすい正規表現」で済むことでしかない。
ただ、今は現実的にそれが出来ないわけでさ。
同様に、正規表現で書けば至極単純なのを、indexOfやforとかで自前で探索してたりするのもそのため。
処理系の速さがコードの簡潔さ/美しさを下支えするものではあるんだよ。
だからつまり、「単純簡潔で分かりやすいが遅いコード」を許容する為には速度が不可欠で、
Pythonも速度対策すればこの辺が使えるようになって現実的な利用価値が上がるんだけどね。
それ以前に速度なんて考えてないコードばかりだから全体的に糞遅いのかもしれんが。
ただそれ以前に、JSもPythonと比べて難しい言語ではない。
Python界隈の戦略的には「Pythonこそ最易言語」であり、それ以外の意見は認められないのだろうけど、
いわゆるLL言語はどれもこれも簡単だし、大差ない。
JSにおいては「非同期」が無駄に嵌りポイントになってるから、
これさえなくなれば難易度はPythonよりもむしろ簡単になる。(文法が超絶簡素だし)
(ただし、無くなることはないとも思うが。非同期宗教酷すぎ)
600デフォルトの名無しさん
2020/10/11(日) 14:40:59.26ID:rXA2CZZq >>596
>>598
ちなみにお前は何か勘違いしているようだが、俺はPythonを嫌っているわけでもないし、Cを強いているわけでもない。
そもそも俺はCに苦労もしてない。そう思えるのは、お前がCに苦労しているからだ。
既に言ったが、俺がJSを気に入ってるのは、「手抜きの割には速いから」だ。
速く動かす為にはこう書いた方がいい、と分かっていても、面倒なのが大半で、
どうでもいいところから完全に手が抜けるからいいのだ。
だから「JS」というよりは「JSの処理系の速さ」が好きなのであって、逆にJSが遅くてPythonが速ければ、俺はPythonを使っていただろう。
その程度の話でしかない。
それとは別に、JSも言語的にはかなり面白いので気に入ってはいるが。
なおC、あれは難しいのではなくて、理解するのにPCの物理的構造の理解が不可欠なだけだ。
実はそれを知っている奴は最初からつまずかない。
そして仕様はJSやPythonよりも単純な為、覚える範囲だけなら多分1週間もあれば例のK&Rは読めてしまう。
似ているのは物理で、ma=Fが全ての力学も、最初から理解して使いこなせる奴と、1年経っても全然理解出来ない奴と綺麗に別れたろ。
あれは理解力/思考力の問題だが、とにかく、「理解出来る奴は最初から苦労もせずに理解出来てしまう」というのはCと同じ。
君はCがとても難しくて、若者がPythonしか使えず、Pythonしか使えない自分が置き去りにされない世界を望んでいるのだろうけど、
それはない。
Cは他言語と比べたら「ドハマリする奴は絶対に抜け出せない」だけで、仕様としてはかなり簡単な言語だ。
そして計算機工学なら普通に授業してるし、実際、彼等は普通に使えていると思うよ。
ただ、データサイエンティストみたいな、計算機を使うことが主目的ではなく、単純に計算だけしたい奴等はまずはPythonからだろうさ。
そこもしばらくは変わらないとは思う。
Python使えば生産性が高いと思ってるのはお前が馬鹿なだけ。
生産性が高い奴は、その時々に応じて最適の手法を選択するだけ。
それがPythonならそうだろうし、どうせ速度が問題になると分かり切っているのなら最初からCもありだろうさ。
>>598
ちなみにお前は何か勘違いしているようだが、俺はPythonを嫌っているわけでもないし、Cを強いているわけでもない。
そもそも俺はCに苦労もしてない。そう思えるのは、お前がCに苦労しているからだ。
既に言ったが、俺がJSを気に入ってるのは、「手抜きの割には速いから」だ。
速く動かす為にはこう書いた方がいい、と分かっていても、面倒なのが大半で、
どうでもいいところから完全に手が抜けるからいいのだ。
だから「JS」というよりは「JSの処理系の速さ」が好きなのであって、逆にJSが遅くてPythonが速ければ、俺はPythonを使っていただろう。
その程度の話でしかない。
それとは別に、JSも言語的にはかなり面白いので気に入ってはいるが。
なおC、あれは難しいのではなくて、理解するのにPCの物理的構造の理解が不可欠なだけだ。
実はそれを知っている奴は最初からつまずかない。
そして仕様はJSやPythonよりも単純な為、覚える範囲だけなら多分1週間もあれば例のK&Rは読めてしまう。
似ているのは物理で、ma=Fが全ての力学も、最初から理解して使いこなせる奴と、1年経っても全然理解出来ない奴と綺麗に別れたろ。
あれは理解力/思考力の問題だが、とにかく、「理解出来る奴は最初から苦労もせずに理解出来てしまう」というのはCと同じ。
君はCがとても難しくて、若者がPythonしか使えず、Pythonしか使えない自分が置き去りにされない世界を望んでいるのだろうけど、
それはない。
Cは他言語と比べたら「ドハマリする奴は絶対に抜け出せない」だけで、仕様としてはかなり簡単な言語だ。
そして計算機工学なら普通に授業してるし、実際、彼等は普通に使えていると思うよ。
ただ、データサイエンティストみたいな、計算機を使うことが主目的ではなく、単純に計算だけしたい奴等はまずはPythonからだろうさ。
そこもしばらくは変わらないとは思う。
Python使えば生産性が高いと思ってるのはお前が馬鹿なだけ。
生産性が高い奴は、その時々に応じて最適の手法を選択するだけ。
それがPythonならそうだろうし、どうせ速度が問題になると分かり切っているのなら最初からCもありだろうさ。
601デフォルトの名無しさん
2020/10/11(日) 14:50:27.97ID:wajrVZJ7 このクソ冗長な駄文書く奴が簡潔なコード書けると思うかい?
602デフォルトの名無しさん
2020/10/11(日) 14:54:59.49ID:xjaVw/rp 無理だなw
603デフォルトの名無しさん
2020/10/11(日) 15:00:02.75ID:AhI6YFfN 要約するとPythonが憎いってことかw
604デフォルトの名無しさん
2020/10/11(日) 15:06:05.60ID:dKH8Tkfs どうでもいいがいい加減スレチ
605デフォルトの名無しさん
2020/10/11(日) 15:45:06.69ID:eAcRpNge >>601
ありえないよね
ありえないよね
606デフォルトの名無しさん
2020/10/11(日) 15:57:00.97ID:N5blIWED 長文書きたいなら別サービスいきゃいいのにw
607デフォルトの名無しさん
2020/10/11(日) 17:55:24.83ID:n5rbjmiV せっかく丁寧に説明したのに今の若者は長文が読めないとかキレ出すのに1票
608デフォルトの名無しさん
2020/10/11(日) 18:12:49.10ID:rXA2CZZq >>603
お前はCが出来る奴が憎くて憎くて仕方ないのは分かった。
ただ、何度も言ってるが、Cも大して難しくはない。
昔だったらプログラミングなんてしなかった馬鹿連中も最近はプログラミングするようになってきてるから、
大勢の比較的馬鹿から見たら同じ物が難しく見えるだけ。
当たり前だがCなんて昔から変わって無いし、(というか変わらな過ぎだが)
今はIDEのサポートもありネットでも情報を探せるから、昔よりは断然簡単に学べる。
同じ理系学科で比較すれば、脱落率は劇的に改善しているはずだよ。
そもそも昔は1人1台PCでもなく、家で予習/復習すら出来なかったわけでさ。
F12押せばIDEモドキがいきなり出てくる今とは全然違う。
お前はCが出来る奴が憎くて憎くて仕方ないのは分かった。
ただ、何度も言ってるが、Cも大して難しくはない。
昔だったらプログラミングなんてしなかった馬鹿連中も最近はプログラミングするようになってきてるから、
大勢の比較的馬鹿から見たら同じ物が難しく見えるだけ。
当たり前だがCなんて昔から変わって無いし、(というか変わらな過ぎだが)
今はIDEのサポートもありネットでも情報を探せるから、昔よりは断然簡単に学べる。
同じ理系学科で比較すれば、脱落率は劇的に改善しているはずだよ。
そもそも昔は1人1台PCでもなく、家で予習/復習すら出来なかったわけでさ。
F12押せばIDEモドキがいきなり出てくる今とは全然違う。
609デフォルトの名無しさん
2020/10/11(日) 18:38:20.01ID:6reX+khV Cの仕様は確かに小さいよ、しかしだからといって小さいイコール簡単な世界じゃない。
メモリパズルしたりガチで役立つマクロ組んだりSIMDで最適化したり未定義動作と戦ったりしてみると良いよ
メモリパズルしたりガチで役立つマクロ組んだりSIMDで最適化したり未定義動作と戦ったりしてみると良いよ
610デフォルトの名無しさん
2020/10/11(日) 18:47:48.52ID:lHUSyjod いい加減にしろ。
611デフォルトの名無しさん
2020/10/11(日) 18:57:19.02ID:iumhQK0o マロックできないやつがおりゅってマ?ww
612デフォルトの名無しさん
2020/10/11(日) 19:25:10.03ID:rXA2CZZq >>609
未定義動作以外はもちろんやってるぞ。
ただJSでもTypedArrayは導入されたし、メモリパズルや最適化はCだけの話でも無いけど。
むしろそれをやる気がなければ最高速は目指せない。
numjsとか使ってる奴はJS/TSでそれやってると思うよ。
あと、お前もそうだが、最近の若い奴は使いこなす=全機能を使う、と勘違いしている。
Cのマクロなんて深入りしたら余計に生産性が落ちる。あれはぱっと見て分かる範囲で使うべき物。
プログラミング言語なんてアプリを作る道具であって、道具を使い倒すのが目的ではない。
分かる範囲で使い、希望の動作をするアプリが出来るのなら、それでいい。
全く使って無い機能があったとしても、関係ない。
未定義動作以外はもちろんやってるぞ。
ただJSでもTypedArrayは導入されたし、メモリパズルや最適化はCだけの話でも無いけど。
むしろそれをやる気がなければ最高速は目指せない。
numjsとか使ってる奴はJS/TSでそれやってると思うよ。
あと、お前もそうだが、最近の若い奴は使いこなす=全機能を使う、と勘違いしている。
Cのマクロなんて深入りしたら余計に生産性が落ちる。あれはぱっと見て分かる範囲で使うべき物。
プログラミング言語なんてアプリを作る道具であって、道具を使い倒すのが目的ではない。
分かる範囲で使い、希望の動作をするアプリが出来るのなら、それでいい。
全く使って無い機能があったとしても、関係ない。
613デフォルトの名無しさん
2020/10/11(日) 19:27:09.39ID:6reX+khV 別にここTSスレなんだからmallocできん奴おってもええやろ。今は細分化の時代だし。
614デフォルトの名無しさん
2020/10/11(日) 20:54:24.48ID:rXA2CZZq >>609
613読んで気づいたが、別人であったか。
Cにはもうこりごりなら、それもいいと思うけどね。
一応Nodeからffi経由でCのDLLは呼べるらしい。
それなりにオーバーヘッドはあるらしいけども、普通に使ってる分にはほぼ誤差だと思われる。
JSの数値はdouble相当だし、一応32bitのビット演算もあるし、
環境自体がそこそこ速いから、事前準備はJS側でやっても大して問題ないだろう。
単発の演算でオーバーヘッドがでかいのは問題だから、そこを何とかできれば、
科学技術計算からPythonを駆逐できる可能性がある。
ただ、PythonのCのDLLコールも同様にそれなりに遅いらしいので、マーシャリングであればどうにもならないけどね。
613読んで気づいたが、別人であったか。
Cにはもうこりごりなら、それもいいと思うけどね。
一応Nodeからffi経由でCのDLLは呼べるらしい。
それなりにオーバーヘッドはあるらしいけども、普通に使ってる分にはほぼ誤差だと思われる。
JSの数値はdouble相当だし、一応32bitのビット演算もあるし、
環境自体がそこそこ速いから、事前準備はJS側でやっても大して問題ないだろう。
単発の演算でオーバーヘッドがでかいのは問題だから、そこを何とかできれば、
科学技術計算からPythonを駆逐できる可能性がある。
ただ、PythonのCのDLLコールも同様にそれなりに遅いらしいので、マーシャリングであればどうにもならないけどね。
615デフォルトの名無しさん
2020/10/11(日) 21:21:39.97ID:CIdPEDg5 >>600
>C、あれは難しいのではなくて、理解するのにPCの物理的構造の理解が不可欠なだけだ
PCの物理的構造とやらが理解できたところで void (*signal(int sig, void (*func)(int)))(int) なんて宣言を読めるようになるとはとても思えないんだが
>C、あれは難しいのではなくて、理解するのにPCの物理的構造の理解が不可欠なだけだ
PCの物理的構造とやらが理解できたところで void (*signal(int sig, void (*func)(int)))(int) なんて宣言を読めるようになるとはとても思えないんだが
616デフォルトの名無しさん
2020/10/11(日) 21:58:54.02ID:rXA2CZZq >>615
それは慣れだね。
ただ、俺もあの文法はかなり謎で、正直、仕様がよくないと思う。
それはカーニハンも文句言われてて、言い訳は多分ググッたらヒットする。
確か、曰く、この形式ならマクロにしても入れ子でも動く、らしいが、
俺が試した限りはGoみたいな分かりやすい形式でも普通に出来た。
ただ、それ以前に実は当時のCでは関数ポインタをそんなに使わなかった。
正確に言うと、sortとかでは必要とされていたが、単発で使う分には呪文扱いでよく、
勿論熟練者はそれでも使ってたのだろうけど、今ほどカジュアルには使われてなかった。
K&Rでも、「関数ポインタも出来るよ」とさらっと触れられている程度でしかない。
それがJavaで関数ポインタが存在しなかった理由だし、
C#でも最初は採用されなかった理由だ。(C#は確か2,.0から)
当時はOOPで全て行ける、継承すれば関数ポインタを直接扱う必要も無い、と思われていた。(のだと思う)
ただその後、おそらくJSのブレークにより、クロージャ/ラムダの有用性がプログラミング界隈で認識された。
勿論Lisperはそれ以前からずっと呟いていたのだろうが、今も昔もLisperなんて空気だ。
そしてあまりにも感化された連中がClosure言語をリリースする始末。
だから、今のC初心者がいきなり関数ポインタを使おうとしているのなら、
それは確かに昔のC初心者より難しいことをやってる。
ただそれは呪文扱いでいいと思うよ。
自分が望むアプリを作ることが目的であって、呪文使いになることが目的ではない。
まあ確かに、ここ20年でプログラミング回りもだいぶ変わったから、
C言語自体は確かに変わって無いけども、学ぶべきことが明らかに増えてるのは事実だ。
関数ポインタも、OOPも、クロージャも、並列も、昔の学生には必要なかったから。
それは慣れだね。
ただ、俺もあの文法はかなり謎で、正直、仕様がよくないと思う。
それはカーニハンも文句言われてて、言い訳は多分ググッたらヒットする。
確か、曰く、この形式ならマクロにしても入れ子でも動く、らしいが、
俺が試した限りはGoみたいな分かりやすい形式でも普通に出来た。
ただ、それ以前に実は当時のCでは関数ポインタをそんなに使わなかった。
正確に言うと、sortとかでは必要とされていたが、単発で使う分には呪文扱いでよく、
勿論熟練者はそれでも使ってたのだろうけど、今ほどカジュアルには使われてなかった。
K&Rでも、「関数ポインタも出来るよ」とさらっと触れられている程度でしかない。
それがJavaで関数ポインタが存在しなかった理由だし、
C#でも最初は採用されなかった理由だ。(C#は確か2,.0から)
当時はOOPで全て行ける、継承すれば関数ポインタを直接扱う必要も無い、と思われていた。(のだと思う)
ただその後、おそらくJSのブレークにより、クロージャ/ラムダの有用性がプログラミング界隈で認識された。
勿論Lisperはそれ以前からずっと呟いていたのだろうが、今も昔もLisperなんて空気だ。
そしてあまりにも感化された連中がClosure言語をリリースする始末。
だから、今のC初心者がいきなり関数ポインタを使おうとしているのなら、
それは確かに昔のC初心者より難しいことをやってる。
ただそれは呪文扱いでいいと思うよ。
自分が望むアプリを作ることが目的であって、呪文使いになることが目的ではない。
まあ確かに、ここ20年でプログラミング回りもだいぶ変わったから、
C言語自体は確かに変わって無いけども、学ぶべきことが明らかに増えてるのは事実だ。
関数ポインタも、OOPも、クロージャも、並列も、昔の学生には必要なかったから。
617デフォルトの名無しさん
2020/10/11(日) 22:21:00.46ID:6reX+khV 思ったよりは詳しいみたいだし、その長文書くエネルギーでTypeScriptもっと使い込んで?
批判するならその上で批判して。ここTSスレだから。
使うまでも無いとか技術者らしからぬ事言わないでね。
批判するならその上で批判して。ここTSスレだから。
使うまでも無いとか技術者らしからぬ事言わないでね。
618デフォルトの名無しさん
2020/10/11(日) 22:30:53.12ID:KPje/k62 長い、3行で
619デフォルトの名無しさん
2020/10/11(日) 22:42:52.59ID:rXA2CZZq >>617
TSについては、今のところ使う予定無いからね。
理由は既に言ったとおり、「スモークテストまでだけの為に記述が増えすぎ」だから。
ただTSは確かに立ち位置は悪くない。
型のおいしいところだけつまみ食いしよう、という意図が明確でいい。
そもそも使って無いから細かい粗も知らんし、批判しようも無い。
JSが糞な点は多々あるけど、それはTSでどうにかなるものでも無いし。
TSについては、今のところ使う予定無いからね。
理由は既に言ったとおり、「スモークテストまでだけの為に記述が増えすぎ」だから。
ただTSは確かに立ち位置は悪くない。
型のおいしいところだけつまみ食いしよう、という意図が明確でいい。
そもそも使って無いから細かい粗も知らんし、批判しようも無い。
JSが糞な点は多々あるけど、それはTSでどうにかなるものでも無いし。
620デフォルトの名無しさん
2020/10/11(日) 23:10:58.87ID:pHYX9F42621デフォルトの名無しさん
2020/10/12(月) 02:32:07.80ID:ay8eu3sV スレチは3行もいらん
622デフォルトの名無しさん
2020/10/12(月) 06:56:35.72ID:MB2VBDRV623デフォルトの名無しさん
2020/10/12(月) 08:01:12.80ID:D7FMyxf4 実際のところ、皆さんtsを仕事で使ってたりするの?
624デフォルトの名無しさん
2020/10/12(月) 08:49:35.94ID:sR+xz/oc うん
625デフォルトの名無しさん
2020/10/12(月) 08:51:37.03ID:wrjLnlZW 使ってるよ。
元々JS使いだから最初は型と戦ってばかりで時間かかって生産性下がって辛かったけど、慣れればむしろ早いし、リリースした後の安心感が段違い。
小規模開発でもこれだから規模が大きいとさらに影響は大きいだろうね
元々JS使いだから最初は型と戦ってばかりで時間かかって生産性下がって辛かったけど、慣れればむしろ早いし、リリースした後の安心感が段違い。
小規模開発でもこれだから規模が大きいとさらに影響は大きいだろうね
626デフォルトの名無しさん
2020/10/12(月) 08:55:55.53ID:g334XhqZ フロントエンドエンジニアやってるけど、React + TypeScriptが鉄板過ぎる
これ以外でUI組む気になれん
これ以外でUI組む気になれん
627デフォルトの名無しさん
2020/10/12(月) 10:31:14.01ID:lIqFO5mi サーバーサイドでも使ってる人いるのかな
typescriptとサーバーサイドでググると
サーバーサイドでもtypescript 最高たぜ〜みたいな記事出てくるけどほんまかいなと。
Java,や.NET使った上でそう判断してる現場もあるんだろうか。
いま.NETしか経験がないメンバーにtsを習得させるか、思い切ってBlazorに手を出しちゃうか悩み中。
typescriptとサーバーサイドでググると
サーバーサイドでもtypescript 最高たぜ〜みたいな記事出てくるけどほんまかいなと。
Java,や.NET使った上でそう判断してる現場もあるんだろうか。
いま.NETしか経験がないメンバーにtsを習得させるか、思い切ってBlazorに手を出しちゃうか悩み中。
628デフォルトの名無しさん
2020/10/12(月) 10:41:40.32ID:pl0L2hmu 鯖サイドってOSコロコロ変わるイメージ無いんだけど、JVMにしろ.netにしろVMで動かす意味ってあるの?
GoとかRustで良いんじゃ無いかって思うんだが。
GoとかRustで良いんじゃ無いかって思うんだが。
629デフォルトの名無しさん
2020/10/12(月) 10:56:21.63ID:sR+xz/oc >>627
.NET Core使っとけ
.NET Core使っとけ
630デフォルトの名無しさん
2020/10/12(月) 11:29:41.17ID:CsRHImZw Ruby on Rails では、Bootstrap, React だけど、
JavaScript(JS) に、Ruby の式を埋め込む、ERB を使って、JSへ変換する。
a.js.erb
<%= Rubyの式 %>
$( "body" ).append( "<%= j(render partial: 'example_partial') %>" );
こういう書き方で、TypeScript を使えるかな?
JavaScript(JS) に、Ruby の式を埋め込む、ERB を使って、JSへ変換する。
a.js.erb
<%= Rubyの式 %>
$( "body" ).append( "<%= j(render partial: 'example_partial') %>" );
こういう書き方で、TypeScript を使えるかな?
631デフォルトの名無しさん
2020/10/12(月) 11:39:26.90ID:tosLr/AM >>628
むしろVM使ってるかどうかで言語を選択するケースのほうが稀
むしろVM使ってるかどうかで言語を選択するケースのほうが稀
632デフォルトの名無しさん
2020/10/12(月) 11:47:16.30ID:wrjLnlZW >>627
TSに手を出すのとBlazorに手を出すのでは冒険度合いが違いすぎない?
TSに手を出すのとBlazorに手を出すのでは冒険度合いが違いすぎない?
633デフォルトの名無しさん
2020/10/12(月) 12:34:06.06ID:lIqFO5mi >>632
だよね…
こんなところで聞くことじゃないかもしれないんだけど、
サーバーサイドに記述されてるクラスって、フロントでも使えるの?
それともフロント側でもtypescriptで同じクラスを宣言しないといけない?
Blazorはクラスを共有できるくさくて…それはメリットとしてかなりでかいなあと。
だよね…
こんなところで聞くことじゃないかもしれないんだけど、
サーバーサイドに記述されてるクラスって、フロントでも使えるの?
それともフロント側でもtypescriptで同じクラスを宣言しないといけない?
Blazorはクラスを共有できるくさくて…それはメリットとしてかなりでかいなあと。
634デフォルトの名無しさん
2020/10/12(月) 12:38:53.86ID:gBcZoQLz >>628
サーバーは言語何を使うとしても仮想化前提だろ。
サーバーは言語何を使うとしても仮想化前提だろ。
635デフォルトの名無しさん
2020/10/12(月) 12:49:06.93ID:wrjLnlZW >>633
同じ言語だからクラス書いたファイルを両方から参照すれば良くない?
そういう意味でなくてサーバとクライアントでシームレスにインスタンスをやり取りしたいとかであればフレームワークが居るのでは?
同じ言語だからクラス書いたファイルを両方から参照すれば良くない?
そういう意味でなくてサーバとクライアントでシームレスにインスタンスをやり取りしたいとかであればフレームワークが居るのでは?
636デフォルトの名無しさん
2020/10/12(月) 13:00:28.44ID:tosLr/AM637633
2020/10/12(月) 13:15:11.55ID:lIqFO5mi ごめんごめん
サーバーサイドはasp.net coreです
OpenApiとやらを使えば、クラスの生成が楽ちんてことね…
しかし二度手間感はすごいあるな…
でもBlazorに手を出すリスクを考えるとまだマシか…
サーバーサイドはasp.net coreです
OpenApiとやらを使えば、クラスの生成が楽ちんてことね…
しかし二度手間感はすごいあるな…
でもBlazorに手を出すリスクを考えるとまだマシか…
638デフォルトの名無しさん
2020/10/12(月) 13:38:59.49ID:sR+xz/oc Blazorも使ってるけど、まだ.NET5対応のツール周りが全然だめなんだよね…業務なら素直にTypeScriptでいいと思うよ
639デフォルトの名無しさん
2020/10/12(月) 15:15:45.91ID:1F5XaUKJ over knight blazorくらいになってからが本番。
640デフォルトの名無しさん
2020/10/12(月) 15:31:28.54ID:TNFvs/DR641デフォルトの名無しさん
2020/10/12(月) 15:34:05.12ID:TNFvs/DR642デフォルトの名無しさん
2020/10/12(月) 15:46:11.22ID:YFC4n48A Goのコードは高機能でファットなランタイムに依存している
ランタイムとアプリを分離できないだけで、実質VM言語みたいなものだ
一方、.NET Coreはアプリとランタイムを実行ファイルに全部ぶっこんで配布することも可能
従来のVM言語という線引きは曖昧になりつつある
ランタイムとアプリを分離できないだけで、実質VM言語みたいなものだ
一方、.NET Coreはアプリとランタイムを実行ファイルに全部ぶっこんで配布することも可能
従来のVM言語という線引きは曖昧になりつつある
643デフォルトの名無しさん
2020/10/12(月) 16:22:11.38ID:DGsDArLw C#だとジェネリクス関連はJITに任せたほうが速かったりできるし、
.NET CoreはReady to Runでネイティブコンパイルされたコードを同梱することもできるぞ。
.NET CoreはReady to Runでネイティブコンパイルされたコードを同梱することもできるぞ。
644デフォルトの名無しさん
2020/10/12(月) 18:07:07.48ID:pl0L2hmu あー・・・。
そう言えばC#はネイティブにもコンパイル出来るようになったんだっけ・・・。
C#については納得。
Javaはまあ、コード資産だろうし。
そう言えばC#はネイティブにもコンパイル出来るようになったんだっけ・・・。
C#については納得。
Javaはまあ、コード資産だろうし。
645デフォルトの名無しさん
2020/10/12(月) 18:13:15.12ID:pl0L2hmu JITについては正直半分くらいしか信じてないんだけど、あり得なくは無いなと思ってる。
Dや一部のC++みたいにコンパイル時実行での最適化とどっちが速いんだろうとか思う。
Dや一部のC++みたいにコンパイル時実行での最適化とどっちが速いんだろうとか思う。
646デフォルトの名無しさん
2020/10/12(月) 18:27:26.57ID:wrjLnlZW >>643
ジェネリクスってコンパイル時に解決するものだと思ってた
ジェネリクスってコンパイル時に解決するものだと思ってた
647デフォルトの名無しさん
2020/10/12(月) 18:58:23.00ID:2+ZUcZ4K TypeScript part3
648デフォルトの名無しさん
2020/10/12(月) 20:08:52.47ID:aavFFkjO649デフォルトの名無しさん
2020/10/12(月) 20:18:21.71ID:wrjLnlZW >>648
そゆことね。なるほど
そゆことね。なるほど
650デフォルトの名無しさん
2020/10/12(月) 21:17:35.13ID:/8/TUV2P モダンC++対マネージコード:パフォーマンス対生産性
https://www.infoq.com/jp/news/2012/04/native_vs_jit/
https://www.infoq.com/jp/news/2012/04/native_vs_jit/
651デフォルトの名無しさん
2020/10/12(月) 22:34:15.13ID:CacJvltN >>625
型はトモダチ…!
型はトモダチ…!
652デフォルトの名無しさん
2020/10/12(月) 22:37:04.59ID:CacJvltN 質問なのですがTypeScriptでC++みたいに関数引数をconstにするにはどうすれば
良いの?
良いの?
653デフォルトの名無しさん
2020/10/12(月) 22:47:48.13ID:CacJvltN >>648
>あと、分岐命令なんかはどっちのほうが頻度高いかとか見て、動的にプロファイル取りながら最適化しつつ実行してるので、JITの方がより良い形になる事もある。
デマくね…?
プロファイル取る手間はタダじゃないし、
>あと、分岐命令なんかはどっちのほうが頻度高いかとか見て、動的にプロファイル取りながら最適化しつつ実行してるので、JITの方がより良い形になる事もある。
デマくね…?
プロファイル取る手間はタダじゃないし、
654デフォルトの名無しさん
2020/10/12(月) 23:49:02.74ID:m2BvN3X6 >>652
eslint no-param-reassign
eslint no-param-reassign
655デフォルトの名無しさん
2020/10/13(火) 00:53:50.25ID:y5Oy6HcC Ruby では、1秒で100万回ループすると、
JIT されて、1秒で1,000万回ループされる
JIT されて、1秒で1,000万回ループされる
656デフォルトの名無しさん
2020/10/13(火) 06:14:03.47ID:ksuhhYbG >>651
型はトモダチ!(゚∀゚)
型はトモダチ!(゚∀゚)
657デフォルトの名無しさん
2020/10/13(火) 07:33:03.58ID:mCCwe/N2658デフォルトの名無しさん
2020/10/13(火) 17:57:10.11ID:cQUBKlo0 (´・ω・`) webpack v5 ……
659デフォルトの名無しさん
2020/10/13(火) 21:41:54.07ID:mhza1+DZ >>654
「Invalid option '--param-reassign'」って言われた つ∀`;)
ESLint: 6.5.1.
ていうかできたとして無差別にconnstというのもそれはそれでC++と違う希ガスorz
「Invalid option '--param-reassign'」って言われた つ∀`;)
ESLint: 6.5.1.
ていうかできたとして無差別にconnstというのもそれはそれでC++と違う希ガスorz
660デフォルトの名無しさん
2020/10/15(木) 17:16:37.21ID:pazOZeAi webpack@5、めっちゃ破壊的やん…
661デフォルトの名無しさん
2020/10/15(木) 17:39:38.69ID:hmYZFqJj >>659
お前の目はフシアナか?
https://eslint.org/docs/rules/no-param-reassign
ていうか引数に再代入するガイジなんて必要ないから無差別にエラーで構わんやろ
お前の目はフシアナか?
https://eslint.org/docs/rules/no-param-reassign
ていうか引数に再代入するガイジなんて必要ないから無差別にエラーで構わんやろ
662デフォルトの名無しさん
2020/10/31(土) 19:19:55.76ID:T4Ek6w2r JavaScriptからTypeScriptへの書き換えオワタ\(^o^)/
JavaScrpit最初に知って一ヶ月で全部書いたから3000行ぐらいだろうと思っていたら
あとでちゃんと数えたら8790行やったorz
実作業4日かかった
ここで4日というのは4日×8Hではなくて4日×24Hの意m(ry
JavaScrpit最初に知って一ヶ月で全部書いたから3000行ぐらいだろうと思っていたら
あとでちゃんと数えたら8790行やったorz
実作業4日かかった
ここで4日というのは4日×8Hではなくて4日×24Hの意m(ry
663デフォルトの名無しさん
2020/10/31(土) 19:27:20.93ID:cZ59ogsv 乙
TypeScriptやってない頃に書いたコードってTypeScriptのこと意識してなくてオブジェクトの形を動的に変えたりしない?
自分がやったときはそのせいでだいぶ時間かかったわ
TypeScriptやってない頃に書いたコードってTypeScriptのこと意識してなくてオブジェクトの形を動的に変えたりしない?
自分がやったときはそのせいでだいぶ時間かかったわ
664デフォルトの名無しさん
2020/10/31(土) 19:31:22.31ID:T4Ek6w2r prototype文で無理矢理classにしていたやつを
さらに基底クラス(にあたるブツ)の所有でもって継承を表現していたやつの普通のclassと継承への書き換えが苦痛やった、
機械的とはいえ自動化できるほど単純には行かず苦痛やった、
手製イベントのインターフェースが実際何になるのかがぐちゃらけていたので3種類のインターフェースのORで
表現できるとワカルまで試行錯誤を要した、
あとはだいたいうまいぐあいに逝けた
とわいえVSCodeの強力なインテリセンスとリアルタイムエラー報告(スクロールバーのところが赤くなるやつ)が無かったら
到底完遂不可能なところやった、、、
webpack使用
さらに基底クラス(にあたるブツ)の所有でもって継承を表現していたやつの普通のclassと継承への書き換えが苦痛やった、
機械的とはいえ自動化できるほど単純には行かず苦痛やった、
手製イベントのインターフェースが実際何になるのかがぐちゃらけていたので3種類のインターフェースのORで
表現できるとワカルまで試行錯誤を要した、
あとはだいたいうまいぐあいに逝けた
とわいえVSCodeの強力なインテリセンスとリアルタイムエラー報告(スクロールバーのところが赤くなるやつ)が無かったら
到底完遂不可能なところやった、、、
webpack使用
665デフォルトの名無しさん
2020/10/31(土) 19:34:13.19ID:fxcwqRC2 おめでとう
666デフォルトの名無しさん
2020/10/31(土) 21:54:44.53ID:bInJNbvZ ウンコードなJSをTSに変えることで人は強くなるのだ
おまえはまた強くなった
おまえはまた強くなった
667デフォルトの名無しさん
2020/11/01(日) 08:10:24.39ID:jzqs5N6a 委譲から継承に切り替えたらそりゃ辛いっしょ。
乙〜
乙〜
668デフォルトの名無しさん
2020/11/02(月) 00:59:20.76ID:ZpVsHyOp delegation over inheritance って言うしな
669デフォルトの名無しさん
2020/11/06(金) 22:00:05.98ID:4red4XqV GithubでもTsは定義箇所にジャンプできたりするんだな
強い
強い
670デフォルトの名無しさん
2020/11/09(月) 19:43:09.64ID:m4E6C9lQ 今からTypeScriptやるならDenoでいーの?
あっギャグじゃないです真面目な質問
あっギャグじゃないです真面目な質問
671デフォルトの名無しさん
2020/11/09(月) 21:13:08.03ID:EKGzterf 作った本人は デノ って発音してるように聞こえる
672デフォルトの名無しさん
2020/11/09(月) 21:43:52.92ID:nCMtc7Yy Denoあんまり詳しくないけど、何やりたいかにもよると思う
Web開発をする分にはまだNodeなんじゃないかな
周辺のツールやライブラリが揃ってるので
CLIツールとかならDenoでいーんでの?
Web開発をする分にはまだNodeなんじゃないかな
周辺のツールやライブラリが揃ってるので
CLIツールとかならDenoでいーんでの?
673デフォルトの名無しさん
2020/11/11(水) 11:00:58.08ID:UmNDS4oo >>669
jsx/tsx でもイケるようになったね
jsx/tsx でもイケるようになったね
674デフォルトの名無しさん
2020/11/17(火) 22:53:14.47ID:slG9DoRm https://ncjamieson.com/prefer-interfaces/
https://github.com/microsoft/TypeScript/wiki/Performance
以前 type 推しの人がいたけどやっぱり interface か…
https://github.com/microsoft/TypeScript/wiki/Performance
以前 type 推しの人がいたけどやっぱり interface か…
675デフォルトの名無しさん
2020/11/20(金) 14:22:41.76ID:Us83CHd5 Announcing TypeScript 4.1
https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/
https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/
676デフォルトの名無しさん
2020/11/20(金) 21:01:29.75ID:2CLFT5fk どんどん複雑になるなぁ
ついていけまへんわ
ついていけまへんわ
677デフォルトの名無しさん
2020/11/20(金) 21:22:14.83ID:2ALlQdvp 逆にバージョンアップでシンプルになっていく言語ってあるの?
互換を完全に切るような言語なら可能だろうけど
互換を完全に切るような言語なら可能だろうけど
678デフォルトの名無しさん
2020/11/20(金) 21:41:42.91ID:lbWKfW5j679デフォルトの名無しさん
2020/11/20(金) 21:44:46.30ID:4mUoVYL/ 言語機能が増えたからと言って全部使う必要はないしな
たまにどこかで使われてるのを見てあれってなったら調べるくらいで良い
たまにどこかで使われてるのを見てあれってなったら調べるくらいで良い
680デフォルトの名無しさん
2020/11/20(金) 21:50:47.55ID:lbWKfW5j JavaScriptは動的型だけど、動的型は意識しなくても複雑な事が出来てしまう
TypeScriptはそれらに対して何としてでも型を付けたいんだよ
それだけの事
JavaScript自体は何も変わってない
TypeScriptはそれらに対して何としてでも型を付けたいんだよ
それだけの事
JavaScript自体は何も変わってない
681デフォルトの名無しさん
2020/11/20(金) 23:06:21.09ID:YMHZwsA3 もうaltJS風WebAssemblyコンパイラにして
682デフォルトの名無しさん
2020/11/20(金) 23:26:29.58ID:CQfd4Gtb >>681
つ AssemblyScript
つ AssemblyScript
683デフォルトの名無しさん
2020/11/21(土) 01:50:51.61ID:uA84MfqB コンパイラ型ほ生産性低いよ。
684デフォルトの名無しさん
2020/11/21(土) 04:03:36.16ID:KUTDu7Bm685デフォルトの名無しさん
2020/11/21(土) 09:57:45.60ID:y2efXPmb くっそ遅くなりそう
686デフォルトの名無しさん
2020/11/21(土) 10:46:50.16ID:+IqFTLxs C++並にコンパイル遅くなったりしてね。
実質マクロだから実行時は速いんちゃう?
実質マクロだから実行時は速いんちゃう?
687デフォルトの名無しさん
2020/11/21(土) 10:54:34.52ID:QRxilPan688デフォルトの名無しさん
2020/11/21(土) 12:06:56.10ID:FiI26J/z うちのtsプロジェクト、tslintも入れてビルドに10分くらいかかってる。
前に -incremental 試してみてなんかの理由で断念したんだよな。
もう一度トライしてみるか。
前に -incremental 試してみてなんかの理由で断念したんだよな。
もう一度トライしてみるか。
689デフォルトの名無しさん
2020/11/21(土) 12:34:04.91ID:8nB0jPpm スクリプトのメリット完全に失っててワロタ
スクリプトはビルドしちゃいけないんだよ
IDEでパラレルLintするぐらいならいいけどな
ビルドしないと動きませんじゃ本末転倒でなにがなんだか
ビルドするならC#とかGoでやりゃいい
スクリプトはビルドしちゃいけないんだよ
IDEでパラレルLintするぐらいならいいけどな
ビルドしないと動きませんじゃ本末転倒でなにがなんだか
ビルドするならC#とかGoでやりゃいい
690デフォルトの名無しさん
2020/11/21(土) 13:16:27.04ID:L7J0TnQj ts-nodeならビルド不要だけど、それとは違う話か
TypeScriptを直に実行できる処理系は今後も現れないだろうな
TypeScriptを直に実行できる処理系は今後も現れないだろうな
691デフォルトの名無しさん
2020/11/21(土) 13:30:05.02ID:y2efXPmb692デフォルトの名無しさん
2020/11/21(土) 13:42:58.96ID:uA84MfqB Dart始めました
693デフォルトの名無しさん
2020/11/21(土) 14:02:54.86ID:xoaJjvLB そもそもスクリプト言語でスクリプト言語向きじゃない大規模なことをやろうとしてるからこれができたわけで、言語のせいにするのは違う
そもそも今のWeb(アプリ)はTS使ってなくてもビルドしてるものばっかりだし
そもそも今のWeb(アプリ)はTS使ってなくてもビルドしてるものばっかりだし
694デフォルトの名無しさん
2020/11/21(土) 14:35:34.39ID:FiI26J/z まあ、べつに「スクリプトのメリット」を期待してtsを使ってるわけじゃないしな。
とはいえビルド時間が短縮できるならそれに越したことはないが。
とはいえビルド時間が短縮できるならそれに越したことはないが。
695デフォルトの名無しさん
2020/11/21(土) 15:32:21.74ID:+IqFTLxs watch使うからビルド速度そんなに気にならないなぁ
696デフォルトの名無しさん
2020/11/21(土) 18:31:06.90ID:/DiusCOy >>687
RSR7-smallは5をベースにしてるから、それでなんも出来ないとか言ったら、それまでのSchemeを全否定じゃんw
RSR7-smallは5をベースにしてるから、それでなんも出来ないとか言ったら、それまでのSchemeを全否定じゃんw
697デフォルトの名無しさん
2020/11/21(土) 18:58:48.16ID:+IqFTLxs いっそガチでマクロ入れてくれたら色々捗るなぁ。凄く読みにくくなるだろうけど。
そこまで行かなくとも、(内部的に複数の関数を持つ)関数オーバーロードとか欲しいかも
そこまで行かなくとも、(内部的に複数の関数を持つ)関数オーバーロードとか欲しいかも
698デフォルトの名無しさん
2020/12/18(金) 05:11:45.78ID:7UB7snzp ブラウザ使っててよく Webページ が固まることがあるから、ちゃんとUIスレッド以外で処理しろよとよく思ってたが
JavaScript 自体がシングルスレッドだったのね
WebWoker とかいうのもあるみたいだが、MDN見るに、
言語側でがっつり管理するからスレッドセーフあんまり考慮しなくてもいいみたいだし、これは楽でいいわ
Java やってて、クリティカルセクションの処理が一番嫌いだった
デッドロックの原因探すの大変すぎた
JavaScript 自体がシングルスレッドだったのね
WebWoker とかいうのもあるみたいだが、MDN見るに、
言語側でがっつり管理するからスレッドセーフあんまり考慮しなくてもいいみたいだし、これは楽でいいわ
Java やってて、クリティカルセクションの処理が一番嫌いだった
デッドロックの原因探すの大変すぎた
699デフォルトの名無しさん
2020/12/18(金) 05:52:13.96ID:427cIB03 そもそもIO待ちにスレッドを使うのがナンセンスだったんだよな
700デフォルトの名無しさん
2020/12/18(金) 07:23:19.35ID:7UB7snzp まぁでも、
JavaScript のソースコード内に書いたものが全部同じスレッドで走ってる
ってだけで、setTimeout とかの実装内では普通に別スレッド走ってるのか。
そりゃそうだよな、そうしないと非同期処理なんてどうあがいても不可能だものね。
JavaScript のソースコード内に書いたものが全部同じスレッドで走ってる
ってだけで、setTimeout とかの実装内では普通に別スレッド走ってるのか。
そりゃそうだよな、そうしないと非同期処理なんてどうあがいても不可能だものね。
701デフォルトの名無しさん
2020/12/18(金) 09:04:21.16ID:TR+u0YNG 非同期処理はスレッドの場合とそうでない場合の2種類ある
そうでない場合は基本的にハードウェア割り込みで実装されてる
タイマーとか通信処理とか
ファイルアクセスもOS毎に非同期APIが有るけど、libuvは互換性の為に敢えて同期APIを使う処理をスレッドプールに投げているようだ
そうでない場合は基本的にハードウェア割り込みで実装されてる
タイマーとか通信処理とか
ファイルアクセスもOS毎に非同期APIが有るけど、libuvは互換性の為に敢えて同期APIを使う処理をスレッドプールに投げているようだ
702デフォルトの名無しさん
2020/12/18(金) 09:10:54.87ID:TR+u0YNG setTimeoutはスレッドを使ってない様に思うけど、結局の所ユーザー側でそれを知る術が無い
703デフォルトの名無しさん
2020/12/18(金) 12:01:30.61ID:hVx5pFA4 >>698の問題はスレッドがどうとか関係なくて、html中のある個所の内容が決まらないと
全体のレンダリングができない構造になっていたとか、jsをダウンロードしないと
レンダリングされないのにその取得に時間がかかっているとかそんなところだろうな。
全体のレンダリングができない構造になっていたとか、jsをダウンロードしないと
レンダリングされないのにその取得に時間がかかっているとかそんなところだろうな。
704デフォルトの名無しさん
2020/12/18(金) 13:13:24.97ID:7UB7snzp 最近ないように思うけど、1つのページがブラウザ全体をストールさせることが多かったのよ
そんでブラウザを起動し直さなければいけない
その原因が、JS のスレッドと ブラウザのレンダリングスレッド(UIスレッド)が同じスレッドを共有してることにある
DOM 書き換えてる最中に レンダリングされちゃうと、ページレイアウトがぐちゃぐちゃになるから、全部同じスレッドで処理してるんだけど、
JSの処理でUIが固まるのを防ぐには、JS の DOM 書き換え「以外」の操作を別スレッドでやって、レンダリングスレッドと同期処理すればいい
(Java の synchronize とかの要領)
DOM 自体が レンダリングスレッドに属してるのは、しょうがないと思う
昔、マルチスレッドで動作する UI ライブラリ の多くがデッドロックその他のバグでどうにもならなくなって廃棄された(Java でいう AWT)
ということで、UI が固まるのにはスレッドは関係あると思うのよ
まぁ書き方が悪かったのかもしれんが
あと、JS がシングルスレッドなのはとても良いことだと思ってるからね、自分は
マルチスレッド化したら、どのみち同期化処理に失敗して、デッドロックで今よりも固まること多くなるだろうから
参考にした:
https://stackoverflow.com/questions/30932870/why-doesnt-javascript-get-its-own-thread-in-common-browsers
そんでブラウザを起動し直さなければいけない
その原因が、JS のスレッドと ブラウザのレンダリングスレッド(UIスレッド)が同じスレッドを共有してることにある
DOM 書き換えてる最中に レンダリングされちゃうと、ページレイアウトがぐちゃぐちゃになるから、全部同じスレッドで処理してるんだけど、
JSの処理でUIが固まるのを防ぐには、JS の DOM 書き換え「以外」の操作を別スレッドでやって、レンダリングスレッドと同期処理すればいい
(Java の synchronize とかの要領)
DOM 自体が レンダリングスレッドに属してるのは、しょうがないと思う
昔、マルチスレッドで動作する UI ライブラリ の多くがデッドロックその他のバグでどうにもならなくなって廃棄された(Java でいう AWT)
ということで、UI が固まるのにはスレッドは関係あると思うのよ
まぁ書き方が悪かったのかもしれんが
あと、JS がシングルスレッドなのはとても良いことだと思ってるからね、自分は
マルチスレッド化したら、どのみち同期化処理に失敗して、デッドロックで今よりも固まること多くなるだろうから
参考にした:
https://stackoverflow.com/questions/30932870/why-doesnt-javascript-get-its-own-thread-in-common-browsers
705デフォルトの名無しさん
2020/12/18(金) 13:18:46.36ID:7UB7snzp JS で重めの処理をしたりバグがあっても、レンダリングスレッドと分離されてれば、
少なくとも UIが固まることはないということね(デッドロックがなければ)
あと、上で最初に書いた、ブラウザ全体が固まるって話は語弊あったかもしれない
ブラウザの各タブのレンダリングスレッドと、ブラウザ全体のUIスレッドは、多分分けられてるんだよね?
後でちゃんと調べます
少なくとも UIが固まることはないということね(デッドロックがなければ)
あと、上で最初に書いた、ブラウザ全体が固まるって話は語弊あったかもしれない
ブラウザの各タブのレンダリングスレッドと、ブラウザ全体のUIスレッドは、多分分けられてるんだよね?
後でちゃんと調べます
706デフォルトの名無しさん
2020/12/18(金) 13:30:26.86ID:Lq+ZSFwA firefoxがフリーズすることは最近ちょくちょくあったな
edgeに乗り換えたらきれいさっぱり直った
ffはもうだめかもわからんね
edgeに乗り換えたらきれいさっぱり直った
ffはもうだめかもわからんね
707デフォルトの名無しさん
2020/12/18(金) 16:42:31.82ID:7UB7snzp https://gimhana-ds.medium.com/how-firefox-and-chrome-use-process-and-threads-f58f478561f0
ブラウザのスレッドの話ココに載ってた
いろいろとたどってって疲れたので、全部は見てない
Chrome が Tab ごとにプロセスで、Firefox が Tab にマルチスレッド
Firefox もいっぱいプロセス作ってるけどね、ちゃんと読んだ人教えて
ブラウザのスレッドの話ココに載ってた
いろいろとたどってって疲れたので、全部は見てない
Chrome が Tab ごとにプロセスで、Firefox が Tab にマルチスレッド
Firefox もいっぱいプロセス作ってるけどね、ちゃんと読んだ人教えて
708デフォルトの名無しさん
2020/12/18(金) 16:44:48.76ID:7UB7snzp 「Firefox が Tab ごとにスレッド」って書きたかった
そのスレッドも Main Thread = UI Thread (DOM 操作と JS 実行)が1個って意味で、
Raster Thread とか、Composer Thread とか多分他にもいろいろスレッド作る
そのスレッドも Main Thread = UI Thread (DOM 操作と JS 実行)が1個って意味で、
Raster Thread とか、Composer Thread とか多分他にもいろいろスレッド作る
709デフォルトの名無しさん
2020/12/18(金) 17:50:47.93ID:m88v/MV8 すみません、TypeScriptって開発中はコンパイルなしでブラウザですぐに変更の動作確認をできますか?
710デフォルトの名無しさん
2020/12/18(金) 19:33:24.14ID:JhB3G5yf そういう時代が来るといいね
711デフォルトの名無しさん
2020/12/18(金) 19:42:28.67ID:1RoKReGQ Chromium Edge で、YouTube を見て、
動画を、5秒先へ進めたりすると、フリーズする
動画を、5秒先へ進めたりすると、フリーズする
712デフォルトの名無しさん
2020/12/18(金) 21:47:42.98ID:TR+u0YNG WebWorkerは完全にスレッドだぞ
更にAtomicsを使えばスレッド間でatomicなデータ更新が出来る
更にAtomicsを使えばスレッド間でatomicなデータ更新が出来る
713デフォルトの名無しさん
2020/12/18(金) 21:53:39.89ID:6FItt2sR WebWorker使いやすくて好き。並列処理面倒くさいからたまにしか使わないけど
714デフォルトの名無しさん
2020/12/18(金) 22:14:36.51ID:TR+u0YNG しかし、SharedArrayBufferはSpectreのせいでほぼ使えない状態だけどね
Spectreに対応したCPUが普及しきらない限り有効にされる事は無い
Webではもはや余計な機能追加はセキュリティーホールの元という認識でこれ以上進化することも無いだろう
ただ、ストアからインストールするPWAはネイティブアプリの代わりだから、機能追加していくと思われる
Spectreに対応したCPUが普及しきらない限り有効にされる事は無い
Webではもはや余計な機能追加はセキュリティーホールの元という認識でこれ以上進化することも無いだろう
ただ、ストアからインストールするPWAはネイティブアプリの代わりだから、機能追加していくと思われる
715デフォルトの名無しさん
2020/12/18(金) 23:02:27.28ID:2C+h9Dqf ストアの収益減らすの絶対許さないマンのアップル
vs
Webから情報吸いたいマンのグーグル
vs
Webから情報吸いたいマンのグーグル
716デフォルトの名無しさん
2020/12/19(土) 13:35:36.37ID:biviwPkb promise(もしくはasync/await)が使えたらシングルスレッドでも実質別段困らない
希ガス
希ガス
717デフォルトの名無しさん
2020/12/19(土) 15:04:10.72ID:+cK8B71a WebWorkerとか知らんかった...
メインと状態を共有しないのが明確なら便利そうだな
さもなくばAsync/Awaitか
メインと状態を共有しないのが明確なら便利そうだな
さもなくばAsync/Awaitか
718デフォルトの名無しさん
2020/12/19(土) 15:41:20.87ID:1ZOkfUtM I/O boundはPromiseでいいけど
CPU boundはPromiseじゃだめだからWebWorker使う
マルチコアの有効活用
CPU boundはPromiseじゃだめだからWebWorker使う
マルチコアの有効活用
719デフォルトの名無しさん
2020/12/19(土) 18:53:18.58ID:Z1BeWWR+ >>715
それは有る
Appleはブラウザの進化を完全に否定した(WebUSBとか実装しないと明言した)
建て前はセキュリティーだけど、真実はPWAがネイティブアプリと同等の事が出来るとApple税が取れなくなるからだろうね
それは有る
Appleはブラウザの進化を完全に否定した(WebUSBとか実装しないと明言した)
建て前はセキュリティーだけど、真実はPWAがネイティブアプリと同等の事が出来るとApple税が取れなくなるからだろうね
720デフォルトの名無しさん
2020/12/19(土) 18:56:13.80ID:dPku7W9W 税なら税で素直に払えばいい
それでいい製品が使えるならいいことだ
NHKのようなものだな
それでいい製品が使えるならいいことだ
NHKのようなものだな
721デフォルトの名無しさん
2020/12/19(土) 19:15:06.66ID:BJ7NL7s9 Appleが採用しない事で足並みが揃わなくなって、Web全体に影響するという……
722デフォルトの名無しさん
2020/12/19(土) 19:43:44.12ID:GiU9Z0Di 🍎に足並みを揃えない連中がよくない
723デフォルトの名無しさん
2020/12/19(土) 21:17:41.04ID:qtDJ4FDM SharedArrayBufferの代替手段って無いの?
結局これは解決する問題なの?
結局これは解決する問題なの?
724デフォルトの名無しさん
2020/12/19(土) 22:01:28.77ID:oadZnMoo WebUSBに関してはFireFoxも実装する予定はないので
足並みを揃えてないのはChrome
足並みを揃えてないのはChrome
725デフォルトの名無しさん
2020/12/19(土) 22:06:18.93ID:yZxXMpJa 目の前に機器があってスマホからコントロールしたい要求は一般的だと思うけど、USBの番号を個人で取れなくなったので、ブラウザに実装する意味は薄れたかもしれないですね。
726デフォルトの名無しさん
2020/12/19(土) 22:29:23.32ID:lChJAmlD ここだけはappleを応援するわ
消費者としてブラウザにどんどん変な機能つけるんじゃねぇ
消費者としてブラウザにどんどん変な機能つけるんじゃねぇ
727デフォルトの名無しさん
2020/12/19(土) 22:33:23.73ID:yZxXMpJa IoT的な意味合いで必要とする人たちが居るんですよ。
自分は見ないから動画機能を付けるなとか、聞かないから音機能を付けるなっていうのと同じでは?
自分は見ないから動画機能を付けるなとか、聞かないから音機能を付けるなっていうのと同じでは?
728デフォルトの名無しさん
2020/12/19(土) 22:44:29.90ID:8bUfeulY USB APIをサーブしてajaxでlocalhostと通信でいいじゃん
わざわざブラウザがサポートすることじゃない
わざわざブラウザがサポートすることじゃない
729デフォルトの名無しさん
2020/12/19(土) 22:47:08.81ID:8bUfeulY まあ百歩譲って乗せるとしても拡張でいいよな
標準化しようとするのはでしゃばりすぎ
標準化しようとするのはでしゃばりすぎ
730デフォルトの名無しさん
2020/12/19(土) 23:00:43.45ID:YoyJ/iet ブラウザがんばって欲しい
React + TS 最高
swift + storyboard とかいう糞オブ糞のそびえ立つ糞まみれは2度と触りたくない
React + TS 最高
swift + storyboard とかいう糞オブ糞のそびえ立つ糞まみれは2度と触りたくない
731デフォルトの名無しさん
2020/12/19(土) 23:55:21.82ID:Z1BeWWR+ PWAの定義が今一漠然としてるから、今後はその辺りが進化していくと思われる
で、PWAでない場合はJavaScriptの動作は思いっきり制限されるだろうね
ま、それで良いと思う
で、PWAでない場合はJavaScriptの動作は思いっきり制限されるだろうね
ま、それで良いと思う
732デフォルトの名無しさん
2020/12/20(日) 00:28:55.07ID:qaHDEdvT > わざわざブラウザがサポートすることじゃない
ほんとこれ
なぜわざわざブラウザでなんでもやろうとするのか
IoTなんだから普通にツールとかアプリとかドライバ書けよと
ほんとこれ
なぜわざわざブラウザでなんでもやろうとするのか
IoTなんだから普通にツールとかアプリとかドライバ書けよと
733デフォルトの名無しさん
2020/12/20(日) 00:29:51.25ID:L33Timbq 結局ああいうのって「すげええブラウザでこんなことできた!」
いいたいだけちゃうんか、みたいなのがマジ多い
いいたいだけちゃうんか、みたいなのがマジ多い
734デフォルトの名無しさん
2020/12/20(日) 03:36:56.04ID:BKQi3Qp0 ブラウザが高機能化しすぎてブラウザさえ動作すりゃいい感じになってきてる
最終的にOS=ブラウザまで進化しかねない
最終的にOS=ブラウザまで進化しかねない
735デフォルトの名無しさん
2020/12/20(日) 04:53:54.98ID:gM7i2qLz モバイル用OSがそんなかんじ
アプリを全てサンドボックスで隔離して出来ることを制限
じっくり時間をかけて出来ることを解放してきた
アプリを全てサンドボックスで隔離して出来ることを制限
じっくり時間をかけて出来ることを解放してきた
736蟻人間 ◆T6xkBnTXz7B0
2020/12/21(月) 18:34:44.48ID:Zh4p3jGs Web Workerの話が出たから貼っとこう
https://katahiromz.github.io/xword.js/
https://katahiromz.github.io/xword.js/
737デフォルトの名無しさん
2020/12/21(月) 18:45:09.04ID:cr+QDiZ1 ゴミサイトの宣伝すんなカス
738蟻人間 ◆T6xkBnTXz7B0
2020/12/21(月) 18:49:49.16ID:Zh4p3jGs これPromiseとWeb Workerのマルチスレッドでパズルを生成してる。組み合わせ無限大。しかもInternet Explorerでも動作する。まあ、素人にはひと目では分からんだろうな。
739デフォルトの名無しさん
2020/12/21(月) 19:13:00.25ID:cr+QDiZ1 ゴミサイトの宣伝すんなカス
740デフォルトの名無しさん
2020/12/21(月) 19:15:36.88ID:L7srYJg2 webworkerってjoinみたいなメソッドある?
741蟻人間 ◆T6xkBnTXz7B0
2020/12/21(月) 19:15:42.32ID:Zh4p3jGs 悔しいのお、悔しいのお
743デフォルトの名無しさん
2020/12/21(月) 19:25:34.90ID:ApmhBnYc 「蟻人間」でNGぶっこむだけだろうに…
745デフォルトの名無しさん
2020/12/21(月) 20:32:28.70ID:oIaO1Bbh 最近のCPUってコア数バラバラでかつ非対称なコア載ってるから、6個くらいWorker立ち上げて平等に処理投げるんじゃなくて、20個くらいのWorker立ち上げて非対称でいいから適当に処理投げてあとはOSに良きに計らってもらうとかの方がベターなのかな?
746デフォルトの名無しさん
2020/12/21(月) 20:34:43.73ID:ApmhBnYc navigator.hardwareConcurrency
でコア数取れるぞ
でコア数取れるぞ
748デフォルトの名無しさん
2020/12/21(月) 20:51:02.61ID:oIaO1Bbh749デフォルトの名無しさん
2020/12/21(月) 20:54:25.24ID:+ci58h/H750デフォルトの名無しさん
2020/12/21(月) 22:43:20.76ID:Z91q9rOU752デフォルトの名無しさん
2020/12/26(土) 09:41:16.66ID:3y5CuLti export interface TypeA {
paramters: {
[k: string]: {
// body
}
};
}
こんな型があるとき、上記bodyの部分の型を取り出すことってできますかね?
const f = (k: string, o: ???): TypeA => {
return { parameters: { [k]: o } };
};
こんなことがしたい。
paramters: {
[k: string]: {
// body
}
};
}
こんな型があるとき、上記bodyの部分の型を取り出すことってできますかね?
const f = (k: string, o: ???): TypeA => {
return { parameters: { [k]: o } };
};
こんなことがしたい。
753デフォルトの名無しさん
2020/12/26(土) 10:04:33.59ID:kvlSFYEN ヨーわからんがこうかね
bitどっとly
/3aJV7Hw
ts playground だが短縮URL NGワードになってるからすまんな
bitどっとly
/3aJV7Hw
ts playground だが短縮URL NGワードになってるからすまんな
754デフォルトの名無しさん
2020/12/26(土) 11:06:25.41ID:3y5CuLti そこの type Hage の定義に "extreme" を書かずに済ませたい。
この例だと {extreme:string} という型になる部分が変更されたとしても
type Hage の記述を変えずに済むよう TypeA の定義から取り出す
方法がないかと。
この例だと {extreme:string} という型になる部分が変更されたとしても
type Hage の記述を変えずに済むよう TypeA の定義から取り出す
方法がないかと。
755デフォルトの名無しさん
2020/12/26(土) 11:21:04.03ID:3y5CuLti ありがとう、わかった。
["extreme"] を削れば目的の型になりますね。
["paramters"] を使えばいいことに気付かなかった。
["extreme"] を削れば目的の型になりますね。
["paramters"] を使えばいいことに気付かなかった。
756デフォルトの名無しさん
2020/12/26(土) 12:19:31.06ID:kvlSFYEN |
| また髪の話してる
| 彡⌒ミ
\ (´・ω・,彡⌒ミ
(| |(´・ω・`):::: 感じ悪いよね
(Y /:(| |)::::::
し \:(Y /::
\し´
| また髪の話してる
| 彡⌒ミ
\ (´・ω・,彡⌒ミ
(| |(´・ω・`):::: 感じ悪いよね
(Y /:(| |)::::::
し \:(Y /::
\し´
757デフォルトの名無しさん
2020/12/27(日) 19:16:51.24ID:xvZc4lDU もう一つ教えてください。
typeTypeB =
{
tag: 'a';
/* a のボディ */
} | {
tag: 'b';
/* b のボディ */
};
こんな Tagged union type があるとき、 tag === 'a' の時の型(下記)を
取り出すことはできるでしょうか。
type x = {
tag: 'a';
/* a のボディ */
}
typeTypeB =
{
tag: 'a';
/* a のボディ */
} | {
tag: 'b';
/* b のボディ */
};
こんな Tagged union type があるとき、 tag === 'a' の時の型(下記)を
取り出すことはできるでしょうか。
type x = {
tag: 'a';
/* a のボディ */
}
758デフォルトの名無しさん
2020/12/27(日) 19:33:05.66ID:xvZc4lDU TypeB & { tag: 'a' } でいけた。ありがとう。
759デフォルトの名無しさん
2020/12/27(日) 19:36:45.35ID:MtHOITLb 型に欲情する変態さんは piotrwitek/utility-types でも npm 愛するといいぞ
760デフォルトの名無しさん
2020/12/27(日) 19:42:50.77ID:xvZc4lDU またまた教えてください。
type X = A | B | C | undefined;
この X から undefined を除いた型 (A | B | C) を求めるにはどうしたらいいでしょうか。
type X = A | B | C | undefined;
この X から undefined を除いた型 (A | B | C) を求めるにはどうしたらいいでしょうか。
761デフォルトの名無しさん
2020/12/27(日) 19:45:55.95ID:MtHOITLb762デフォルトの名無しさん
2020/12/27(日) 19:49:30.25ID:86OXbM3T 標準にExcludeあるじゃん
763デフォルトの名無しさん
2020/12/27(日) 19:49:45.20ID:xvZc4lDU ありがとう!
764デフォルトの名無しさん
2020/12/28(月) 00:46:42.66ID:0DUA8XV/765デフォルトの名無しさん
2020/12/28(月) 21:27:29.35ID:wzipnhb8 何に使うんじゃ…
漏れの限られた経験では、
x: (A | B | C | undefined)
が渡ってきたら、
if (x is A) { ... }
else if (x is B) { ... }
else if (x is C) { ... }
else if (x == undefined) { ... }
else {
(エラー)
}
ぐらいしかやることが無いキモス
漏れの限られた経験では、
x: (A | B | C | undefined)
が渡ってきたら、
if (x is A) { ... }
else if (x is B) { ... }
else if (x is C) { ... }
else if (x == undefined) { ... }
else {
(エラー)
}
ぐらいしかやることが無いキモス
766デフォルトの名無しさん
2020/12/28(月) 22:38:22.06ID:f0IE/THC 少し簡略化するけど
type A = { [k: string]: number };
type B = { [k: string]: string };
type C = { [k: string]: boolean };
ここで type X[string] で number | string | boolean を取り出したかったけど
undefined が混じっているとうまくいかなかった。
type A = { [k: string]: number };
type B = { [k: string]: string };
type C = { [k: string]: boolean };
ここで type X[string] で number | string | boolean を取り出したかったけど
undefined が混じっているとうまくいかなかった。
767デフォルトの名無しさん
2021/01/03(日) 19:57:38.08ID:p2o4CIkL typescriptのd.tsファイルについて網羅的に解説されているドキュメントはありますでしょうか
公式は最低限の事しか書かれていなくて。
例えば、test1.d.tsは以下の通りに書いてあって
export type A1 = boolean;
type A2 = boolean;
test2.d.tsは以下の通りに書いてある場合、
type B1 = boolean;
type B2 = boolean;
A2 B2はどっちも「type XX = boolean;」という書き方をしているのに、別のtsファイルで
const x1 : A2 = true; と書くと、Cannot find name A2 とエラーになる(importする必要がある)が
const x2 : B2 = true; と書くと、import無しでもエラーは出ない。
test1.d.ts はexport文があるから「このファイル内の定義は、importをしないと使えない」というようなモードになっているのかなと思うけど、このあたりの挙動について知りたい。
declare module文を使った場合とか、namespaceやらでネストされた場合どうなるのかとか、/// <reference types="xxx" /> と書かれているとどういう扱いになるのか とか
とにかくd.tsファイルの一番細かい仕様が見たい。
公式は最低限の事しか書かれていなくて。
例えば、test1.d.tsは以下の通りに書いてあって
export type A1 = boolean;
type A2 = boolean;
test2.d.tsは以下の通りに書いてある場合、
type B1 = boolean;
type B2 = boolean;
A2 B2はどっちも「type XX = boolean;」という書き方をしているのに、別のtsファイルで
const x1 : A2 = true; と書くと、Cannot find name A2 とエラーになる(importする必要がある)が
const x2 : B2 = true; と書くと、import無しでもエラーは出ない。
test1.d.ts はexport文があるから「このファイル内の定義は、importをしないと使えない」というようなモードになっているのかなと思うけど、このあたりの挙動について知りたい。
declare module文を使った場合とか、namespaceやらでネストされた場合どうなるのかとか、/// <reference types="xxx" /> と書かれているとどういう扱いになるのか とか
とにかくd.tsファイルの一番細かい仕様が見たい。
768デフォルトの名無しさん
2021/01/21(木) 09:27:06.31ID:RZX+x1N+ フロントエンド系の解説動画上げてる 英語話者の Youtuber
イケメン率高すぎじゃね?
イケメンじゃなくても、
リーナスやRMSやバーナーズリーみたいな、ひと目みただけで「変人だわ」って思う人が少ない
どうなってんのよ
お前らもイケメンなの?
イケメン率高すぎじゃね?
イケメンじゃなくても、
リーナスやRMSやバーナーズリーみたいな、ひと目みただけで「変人だわ」って思う人が少ない
どうなってんのよ
お前らもイケメンなの?
769デフォルトの名無しさん
2021/01/21(木) 14:08:52.40ID:eZuTDFAg ちなみにわしは自称福山雅治のイケメンだ
770デフォルトの名無しさん
2021/01/21(木) 14:56:12.52ID:vvq65HmA 俺もよく歩いてると三浦春馬さんやっぱり生きてたんですねって話し掛けられて困るわ
771デフォルトの名無しさん
2021/01/21(木) 19:34:01.03ID:uQRkfyi9 オレもしょっちゅう『二郎さんっ……!』って声を掛けられるから、「おやっ、オレは田宮二郎の生まれ代わりなのかな……?」って思ってたら、坂上二郎さんの生まれ代わりだったわ
772デフォルトの名無しさん
2021/01/21(木) 23:37:32.75ID:vvq65HmA >>771
加齢臭ヤバナイ?
加齢臭ヤバナイ?
773デフォルトの名無しさん
2021/01/21(木) 23:42:06.12ID:HlaAZkkn 加齢臭とかいうレベルでなく今の30代ぐらいならもう何の話してるかもわからんだろうな
774デフォルトの名無しさん
2021/01/22(金) 05:20:07.47ID:8pHZ8D0X TypeScript で、React やったけど、いちいちいちいち型定義めんどすぎな…
相性くそわるなめくじかよ
ビジネスモデルのオブジェクトとかは型定義したいが、
いちいち props のインターフェースとか書いてらんねー
変更があったらいちいちインターフェースも書き換えなきゃいけないし
みんなどうやって使ってるの?
Angular とか他のフレームワークだと TypeScript でのやりやすさ違う?
相性くそわるなめくじかよ
ビジネスモデルのオブジェクトとかは型定義したいが、
いちいち props のインターフェースとか書いてらんねー
変更があったらいちいちインターフェースも書き換えなきゃいけないし
みんなどうやって使ってるの?
Angular とか他のフレームワークだと TypeScript でのやりやすさ違う?
775デフォルトの名無しさん
2021/01/22(金) 05:27:56.87ID:txgEYXZL776デフォルトの名無しさん
2021/01/22(金) 05:29:38.84ID:txgEYXZL777デフォルトの名無しさん
2021/01/22(金) 14:46:40.93ID:AFRlD+KK > 変更があったらいちいちインターフェースも書き換えなきゃいけないし
おまえさんのようなうっかりガイジでも変更忘れがないよう指摘してくれてるというのに
わがままうっかりガイジにランクアップや
おまえさんのようなうっかりガイジでも変更忘れがないよう指摘してくれてるというのに
わがままうっかりガイジにランクアップや
778デフォルトの名無しさん
2021/01/22(金) 17:02:33.24ID:txgEYXZL リファクタリングしない人もいるからね。
(いまもみじかににいるし、
拒否るかも...その人)
(いまもみじかににいるし、
拒否るかも...その人)
779デフォルトの名無しさん
2021/01/25(月) 15:51:22.24ID:mMq6O8/K VSCode の補完で関数シグニチャ確認する時、カオスすぎない?
ライブラリがユニオンやら使いまくってるの多くて、パット見引数が何個あるのかわかりにくいし、
もう少し見やすいポップアアップ表示にならんのかな
ライブラリがユニオンやら使いまくってるの多くて、パット見引数が何個あるのかわかりにくいし、
もう少し見やすいポップアアップ表示にならんのかな
780デフォルトの名無しさん
2021/01/25(月) 18:07:26.17ID:+dPxUq7O781デフォルトの名無しさん
2021/01/25(月) 18:33:23.35ID:AK6f8agf c#以上にカオス…?
782デフォルトの名無しさん
2021/01/25(月) 22:54:08.93ID:+dPxUq7O 何倍も!
型の機能も遥かに高度だ!
型の機能も遥かに高度だ!
783デフォルトの名無しさん
2021/01/25(月) 23:03:58.08ID:+dPxUq7O784デフォルトの名無しさん
2021/01/25(月) 23:14:46.15ID:NBocXyOE JavaScriptというそび糞をまともにするためだ
しゃーない
しゃーない
785デフォルトの名無しさん
2021/01/26(火) 03:28:35.94ID:WX4s+KJB 型を半ば無理矢理付けてるだけで、最終的には型を削除したJavaScriptになる
要するに動的型言語というのは、それだけ豊富な表現力を秘めてると言うことだ
本来はそれと引き換えに実行速度が犠牲になるもんだが、VMのチューニングによりネイティブコードと遜色無いのが凄いところ
要するに動的型言語というのは、それだけ豊富な表現力を秘めてると言うことだ
本来はそれと引き換えに実行速度が犠牲になるもんだが、VMのチューニングによりネイティブコードと遜色無いのが凄いところ
786デフォルトの名無しさん
2021/01/26(火) 04:01:05.59ID:SEH/ccP0 後半まで読み進めると
おおおーー!ってなる。
https://html5experts-jp.cdn.ampproject.org/v/s/html5experts.jp/shumpei-shiraishi/24660/amp/?amp_gsa=1&amp_js_v=a6&usqp=mq331AQHKAFQArABIA%3D%3D#amp_tf=%251%24s%20%E3%82%88%E3%82%8A&aoh=16115828872772&csi=1&referrer=https%3A%2F%2Fwww.google.com&share=https%3A%2F%2Fhtml5experts.jp%2Fshumpei-shiraishi%2F24660%2F
protocol と 可変長型は c#で昔から
待望してた機能だ!
おおおーー!ってなる。
https://html5experts-jp.cdn.ampproject.org/v/s/html5experts.jp/shumpei-shiraishi/24660/amp/?amp_gsa=1&amp_js_v=a6&usqp=mq331AQHKAFQArABIA%3D%3D#amp_tf=%251%24s%20%E3%82%88%E3%82%8A&aoh=16115828872772&csi=1&referrer=https%3A%2F%2Fwww.google.com&share=https%3A%2F%2Fhtml5experts.jp%2Fshumpei-shiraishi%2F24660%2F
protocol と 可変長型は c#で昔から
待望してた機能だ!
787デフォルトの名無しさん
2021/01/26(火) 05:29:01.62ID:pU44oeo6788デフォルトの名無しさん
2021/01/26(火) 05:52:17.01ID:pU44oeo6789デフォルトの名無しさん
2021/01/26(火) 07:02:54.66ID:RzMbHMsq >>786
可変長型もう入ってなかったっけと思ったら3年前の記事か
可変長型もう入ってなかったっけと思ったら3年前の記事か
790デフォルトの名無しさん
2021/02/10(水) 08:45:05.84ID:F9HUbn2D TypeScript の型定義に凝りすぎじゃね?
https://neos21.net/blog/2021/02/09-02.html
アンサー: なぜTypeScriptの型定義に凝るのか
https://qiita.com/uhyo/items/3bc5f951f922804ede51
https://neos21.net/blog/2021/02/09-02.html
アンサー: なぜTypeScriptの型定義に凝るのか
https://qiita.com/uhyo/items/3bc5f951f922804ede51
791デフォルトの名無しさん
2021/02/10(水) 10:21:36.03ID:qX2MPAZ0 サードパーティライブラリの型定義に関しては、
定義書くのめんどくさそうなときは any で通してる
型定義あったほうが便利なのは確かなので、
作業自動化して楽にしてくれるツール出てくるとありがたいなと思ってる
インテリセンスの進化とか
あと、VS Code で、TypeScript の型定義読みにくすぎ、
ドキュメント書いてあること少なすぎ、JavaScript のコードに直接とべねーすぎ(?)
でも、こういうアーキテクチャに関する抽象的な議論って
個々の案件に落とし込まないと本質見えてこないことととか、
そもそも想定する状況が議論する相手と食い違ってることがあるから
GitHub にある具体例でも明示してくれると議論は捗るんじゃないかなと思う
定義書くのめんどくさそうなときは any で通してる
型定義あったほうが便利なのは確かなので、
作業自動化して楽にしてくれるツール出てくるとありがたいなと思ってる
インテリセンスの進化とか
あと、VS Code で、TypeScript の型定義読みにくすぎ、
ドキュメント書いてあること少なすぎ、JavaScript のコードに直接とべねーすぎ(?)
でも、こういうアーキテクチャに関する抽象的な議論って
個々の案件に落とし込まないと本質見えてこないことととか、
そもそも想定する状況が議論する相手と食い違ってることがあるから
GitHub にある具体例でも明示してくれると議論は捗るんじゃないかなと思う
792デフォルトの名無しさん
2021/02/10(水) 12:42:09.82ID:vAMcyE+N 弊社は障害者雇用枠しかいないのでPHPしか書けません並の駄文書いてる奴って
生きてて恥ずかしくないのかなって思っちゃう、ごめんね
生きてて恥ずかしくないのかなって思っちゃう、ごめんね
793デフォルトの名無しさん
2021/02/10(水) 14:59:14.96ID:J3IrN4Ey >>790
この人有名人なの?
個人ブログに対する反応としては量が多くて驚く
アンサーのほうは避けられない複雑性を
”複雑な型”で表現した場合としない場合のトレードオフについては
“消えてしまうことは無い”で濁してるだけで正面から回答してないよね
最初のブログの人も感覚的な話だからどっこいどっこいだけど
↓こういうのは頑張りすぎじゃねって感じる
type ArrayOfLengthRec<Num, Elm, T extends unknown[]> = T["length"] extends Num ? T : ArrayOfLengthRec<Num, Elm, [Elm, ...T]>
この人有名人なの?
個人ブログに対する反応としては量が多くて驚く
アンサーのほうは避けられない複雑性を
”複雑な型”で表現した場合としない場合のトレードオフについては
“消えてしまうことは無い”で濁してるだけで正面から回答してないよね
最初のブログの人も感覚的な話だからどっこいどっこいだけど
↓こういうのは頑張りすぎじゃねって感じる
type ArrayOfLengthRec<Num, Elm, T extends unknown[]> = T["length"] extends Num ? T : ArrayOfLengthRec<Num, Elm, [Elm, ...T]>
794デフォルトの名無しさん
2021/02/11(木) 02:00:22.02ID:jkz/J9rH まぁでも型定義するの楽しいからね
パズルみたいで
夢中になっちゃうのは分かる
パズルみたいで
夢中になっちゃうのは分かる
795デフォルトの名無しさん
2021/02/11(木) 12:28:55.00ID:IWbE3xWm796デフォルトの名無しさん
2021/02/11(木) 12:32:46.43ID:89K1HM4Z 初心者のうちは考えなくて良いんだよ。
わけ解らなくてもコード補完してくれる位
思ってれば良い。
わけ解らなくてもコード補完してくれる位
思ってれば良い。
797デフォルトの名無しさん
2021/02/11(木) 19:55:55.18ID:yR+7bkmQ コード補完力・エラー発見力を高めるために型書いてる感はある
JavaとかGoの型を”書かねばならない”という強制感がないんだよな
JavaとかGoの型を”書かねばならない”という強制感がないんだよな
798デフォルトの名無しさん
2021/02/11(木) 21:33:21.20ID:jkz/J9rH コード補完はすごいメリットだよね
あと型定義通ってると書いてて安心するし
あと型定義通ってると書いてて安心するし
799デフォルトの名無しさん
2021/02/11(木) 23:22:56.80ID:89K1HM4Z メリットの一番下は
リファクタリング耐性でしょ。
リファクタリング耐性でしょ。
800デフォルトの名無しさん
2021/02/11(木) 23:23:35.04ID:89K1HM4Z メリットの一番は
リファクタリング耐性でしょ。
リファクタリング耐性でしょ。
801デフォルトの名無しさん
2021/02/15(月) 14:41:09.07ID:7BVeLT+X クラスの中で、毎回 this. っての書かなきゃいけないの面倒くさくない…?
忘れるし
Java 並感
忘れるし
Java 並感
802デフォルトの名無しさん
2021/02/15(月) 14:44:23.78ID:7BVeLT+X803デフォルトの名無しさん
2021/02/15(月) 15:26:58.09ID:RViaNkw8 javascriptのthisのややこしさ知ってて言ってる?
804デフォルトの名無しさん
2021/02/15(月) 20:44:05.34ID:fEx2IVhT >>802
JS使いは誰もそう思わないと思うよ
そこでも最初から否定されてるし、その通りだよ
thisを省略可能なのは各メソッドにクロージャがない言語だけだよ
JSはそうではないから、余計に分かりにくくなるだけ
JS使いは誰もそう思わないと思うよ
そこでも最初から否定されてるし、その通りだよ
thisを省略可能なのは各メソッドにクロージャがない言語だけだよ
JSはそうではないから、余計に分かりにくくなるだけ
805デフォルトの名無しさん
2021/02/15(月) 21:56:58.17ID:ZXLSNxbk this省略が欲しいなんて1度も思ったことないわ
レガシーなJavaプロジェクトで、クソデカclass相手にした時は eclipse で this 強制せんとやってられんかった
で、Javaならローカル変数とクラス変数の違いが見分けられないだけだが
JavaScriptはただのfunctionもある
アホがJavaScriptでthisの省略悪用したら、簡単に地獄の蓋が開いて中から飛び出たイエスファッキンキリストに脳までファックされる未来が見えるね
レガシーなJavaプロジェクトで、クソデカclass相手にした時は eclipse で this 強制せんとやってられんかった
で、Javaならローカル変数とクラス変数の違いが見分けられないだけだが
JavaScriptはただのfunctionもある
アホがJavaScriptでthisの省略悪用したら、簡単に地獄の蓋が開いて中から飛び出たイエスファッキンキリストに脳までファックされる未来が見えるね
806デフォルトの名無しさん
2021/02/15(月) 21:58:12.78ID:ZXLSNxbk つかしばらくclassもthisも書いた記憶ねえわ
POJOと参照透過なarrow functionがあればそれでいい
POJOと参照透過なarrow functionがあればそれでいい
807デフォルトの名無しさん
2021/02/15(月) 22:03:00.31ID:ptBzJrEw tsやってるとclassいらないよね
808デフォルトの名無しさん
2021/02/16(火) 00:04:28.67ID:FwQskT4w 個人的にはオブジェクトが副作用を持つ(と明示したい)ときは使うかな。
あとErrorを継承とか継承以外にスマートな方法が無いときも使う。
出番はそんなに多くないけども
あとErrorを継承とか継承以外にスマートな方法が無いときも使う。
出番はそんなに多くないけども
809デフォルトの名無しさん
2021/02/24(水) 20:43:58.73ID:+f/VsSol Announcing TypeScript 4.2
https://devblogs.microsoft.com/typescript/announcing-typescript-4-2/
https://devblogs.microsoft.com/typescript/announcing-typescript-4-2/
810デフォルトの名無しさん
2021/02/25(木) 08:15:48.96ID:e2KFXpDq [TypeScript のテストを Jest (ts-jest) でやってみる - Qiita](https://qiita.com/mangano-ito/items/99dedf88d972e7e631b7)
これ参考にjestでテストしたのですが、ts-jest使うと、テスト時にts-jestが内部的にトランスパイルすrので、JavaScriptコードがファイルとして生成保存されないから
テストするたびに、前のテストから変更されてないソースもいちいち全てトランスパイルしてるのですか?
それともjsファイルが生成されてれば、それを利用してくれるのですか?
これ参考にjestでテストしたのですが、ts-jest使うと、テスト時にts-jestが内部的にトランスパイルすrので、JavaScriptコードがファイルとして生成保存されないから
テストするたびに、前のテストから変更されてないソースもいちいち全てトランスパイルしてるのですか?
それともjsファイルが生成されてれば、それを利用してくれるのですか?
811デフォルトの名無しさん
2021/02/25(木) 20:47:42.47ID:pFknXJZi https://kulshekhar.github.io/ts-jest/docs/processing
キャッシュしてると思います
キャッシュしてると思います
812デフォルトの名無しさん
2021/02/26(金) 07:59:54.83ID:TBWzJJJb >>811
ありがとう!
その図みても自分じゃ難しくてよくわからんが、確かにキャッシュ使ってるみたいだね。
思ったより複雑にいろいろしてるみたいだから、やっぱり自分が心配するような事は考慮済みだね、当たり前か。
ありがとう!
その図みても自分じゃ難しくてよくわからんが、確かにキャッシュ使ってるみたいだね。
思ったより複雑にいろいろしてるみたいだから、やっぱり自分が心配するような事は考慮済みだね、当たり前か。
813デフォルトの名無しさん
2021/03/04(木) 12:38:42.72ID:GxKFsRrm Flutter2 とともに Dart にnull安全がやって来たなあ
ちょっと勉強してみようかな
ちょっと勉強してみようかな
814デフォルトの名無しさん
2021/03/04(木) 12:47:27.36ID:xAXt6OPO Dartのことゴミだと思ってるけど
聳え立つクソof真のゴミofゴミstoryboard & xcodeをやるくらいなら、Dartで首吊った方がマシなのかもしれん
聳え立つクソof真のゴミofゴミstoryboard & xcodeをやるくらいなら、Dartで首吊った方がマシなのかもしれん
815デフォルトの名無しさん
2021/03/05(金) 14:31:03.60ID:lXK+Zrlg >>813
やっときたか!
やっときたか!
816デフォルトの名無しさん
2021/05/18(火) 11:15:17.98ID:+3nwuGsr TypeScript勉強してたらオブジェクトの配列とか出てきて型の使い方が全くわからなかった。
817デフォルトの名無しさん
2021/05/18(火) 11:53:25.44ID:+3nwuGsr type user2 = {
id: number;
name: string;
}[];
let test2: user2 = { id: 1, name: "大谷" };
console.log(test2);
---
type user2のオブジェクトをオブジェクトの配列にしたけど、これを利用するのはどうすればいいの?
id: number;
name: string;
}[];
let test2: user2 = { id: 1, name: "大谷" };
console.log(test2);
---
type user2のオブジェクトをオブジェクトの配列にしたけど、これを利用するのはどうすればいいの?
818デフォルトの名無しさん
2021/05/21(金) 21:43:57.64ID:EtVgB+aP いきなり間違ってる
819デフォルトの名無しさん
2021/05/25(火) 20:07:54.63ID:wb9iQvXr eslintのno-unsafe-member-accessチェックを有効にするために怪しいanyは全部タイプガードを通して
使うようにしようと思ったんだが、タイプガードの中でメンバーチェックするところがno-unsafe-member-accessに
引っかかってしまう。
詰んでる?
interface TypeA {
member_a: string;
}
functin isTypeA(a: any): a is TypeA {
if (typeof a !== 'object') return false;
if (!('member_a' in a)) return false;
if (typeof a.member_a !== 'string) return false; // Unsafe member access .member_a on an any value.
return true;
}
使うようにしようと思ったんだが、タイプガードの中でメンバーチェックするところがno-unsafe-member-accessに
引っかかってしまう。
詰んでる?
interface TypeA {
member_a: string;
}
functin isTypeA(a: any): a is TypeA {
if (typeof a !== 'object') return false;
if (!('member_a' in a)) return false;
if (typeof a.member_a !== 'string) return false; // Unsafe member access .member_a on an any value.
return true;
}
820デフォルトの名無しさん
2021/05/27(木) 07:58:04.71ID:ac9nW6BB Announcing TypeScript 4.3
https://devblogs.microsoft.com/typescript/announcing-typescript-4-3/
https://devblogs.microsoft.com/typescript/announcing-typescript-4-3/
821デフォルトの名無しさん
2021/05/28(金) 20:33:33.18ID:xubVQEL1 #privateは使っていくべきなの?
822デフォルトの名無しさん
2021/05/31(月) 20:57:24.94ID:N+Q3MCtj プログラミング言語「TypeScript 4.3」をMicrosoftが公開
https://www.atmarkit.co.jp/ait/articles/2105/31/news119.html
https://www.atmarkit.co.jp/ait/articles/2105/31/news119.html
823デフォルトの名無しさん
2021/06/07(月) 08:54:45.48ID:T37bbYD1 「型がないと開発できない」
「型がないと開発できないっていうのは無能」
↓翻訳
「うんこって汚い」
「うんこは汚いと思ってるやつは無能」
↓翻訳
「バーカ」
「アーホ」
「型がないと開発できないっていうのは無能」
↓翻訳
「うんこって汚い」
「うんこは汚いと思ってるやつは無能」
↓翻訳
「バーカ」
「アーホ」
824デフォルトの名無しさん
2021/06/07(月) 11:20:40.98ID:f9HfMVYo825デフォルトの名無しさん
2021/06/13(日) 17:37:59.04ID:1VszOIAC GoとかRustみたいにenumとかtypeに直接メソッド生やしたい...
826デフォルトの名無しさん
2021/06/13(日) 19:26:58.74ID:exUpBE38 >typeに直接メソッド生やしたい.
いまいちどういうことをやりたいのかわからないが、classじゃなくてtypeじゃないとダメなの?
いまいちどういうことをやりたいのかわからないが、classじゃなくてtypeじゃないとダメなの?
827デフォルトの名無しさん
2021/06/13(日) 20:26:40.60ID:1VszOIAC ↓みたいなADTっぽいことやる時とか直接メソッド生やせないと不便じゃない?
ttps://typescript-jp.gitbook.io/deep-dive/type-system/discriminated-unions
ttps://typescript-jp.gitbook.io/deep-dive/type-system/discriminated-unions
828デフォルトの名無しさん
2021/06/13(日) 21:44:24.86ID:exUpBE38 typeに関数型のメンバを追加すりゃいい話じゃなくて?
「typeに直接」ってのが何を言っているのかよくわqからん。
「typeに直接」ってのが何を言っているのかよくわqからん。
829デフォルトの名無しさん
2021/06/13(日) 22:03:52.22ID:SDaJf1m8 GoやRustを触ったことがあれば分かるけど, クラスではなくあくまでデータ構造(struct)を定義して, Goではレシーバ付きの関数, Rustではimplでデータ構造に対して操作を定義していく
C#だと定義済みのクラスに拡張メソッドでメソッド追加したり
素のJavaScriptならprototypeにメソッド追加する, みたいな
で, TypeScriptだと今は出来ないと思うけど, 需要はありそうだし, RFCとか出されてない?
構文的にJavaScriptと互換にやるのが難しいかな?
C#だと定義済みのクラスに拡張メソッドでメソッド追加したり
素のJavaScriptならprototypeにメソッド追加する, みたいな
で, TypeScriptだと今は出来ないと思うけど, 需要はありそうだし, RFCとか出されてない?
構文的にJavaScriptと互換にやるのが難しいかな?
830デフォルトの名無しさん
2021/06/13(日) 22:17:00.33ID:SDaJf1m8 既存の構文で出来るらしい
https://medium.com/my-coding-life/extension-method-in-typescript-66d801488589
C#のような新規の構文サポートは実装しない方針
https://github.com/microsoft/TypeScript/issues/563#issuecomment-291300044
https://medium.com/my-coding-life/extension-method-in-typescript-66d801488589
C#のような新規の構文サポートは実装しない方針
https://github.com/microsoft/TypeScript/issues/563#issuecomment-291300044
831デフォルトの名無しさん
2021/06/21(月) 11:11:33.75ID:Jendc3yZ Githubでとあるプロジェクトをパブリックにしてたら何かヤベーアメ公に絡まれた
気に入らなきゃさっさとフォークしろやハゲ
気に入らなきゃさっさとフォークしろやハゲ
832デフォルトの名無しさん
2021/07/03(土) 10:34:27.35ID:afnPLxcZ ふぇぇ…
Angularのバージョン上がるの早すぎだよぅ…
Angular4を使ったSPAのセキュリティが心配だよぅ…
Angularのバージョン上がるの早すぎだよぅ…
Angular4を使ったSPAのセキュリティが心配だよぅ…
833デフォルトの名無しさん
2021/07/07(水) 22:02:22.89ID:IyqR2Fvh Angular とかとっくに死んだと思ってたわ
誰が使ってるんだ?
1系で身動き取れなくなったレガシーサービスくらいしか見たことない
誰が使ってるんだ?
1系で身動き取れなくなったレガシーサービスくらいしか見たことない
834デフォルトの名無しさん
2021/07/07(水) 23:53:28.16ID:qO1FdR5E >>833
Teams(そろそろReactで書き換えられるけど)
Teams(そろそろReactで書き換えられるけど)
835デフォルトの名無しさん
2021/07/08(木) 07:47:58.41ID:75MwFXOI Google 自身が Google のサービスで全く使ってないのに、何で作ってるのかわかんない
いつ捨てられてもおかしくなくね
いつ捨てられてもおかしくなくね
836デフォルトの名無しさん
2021/07/08(木) 14:40:54.16ID:jNeY00JW teamsってangularだったのか。
reactにしたらもっさりが直るかな
reactにしたらもっさりが直るかな
837デフォルトの名無しさん
2021/07/08(木) 14:50:07.37ID:hOnojRWO >>836
Electron+AngularJsからWebview2+Reactになってメモリ消費は半分になるとか
Electron+AngularJsからWebview2+Reactになってメモリ消費は半分になるとか
838デフォルトの名無しさん
2021/07/14(水) 23:38:18.17ID:C6qCMUQO 質問させてください。
WebAPIを呼んでJsonを取得し、その一部の項目を使いたいのですが、
以下の2つの方法を考えました。
1.提供されるJsonと全く同じ項目をもつクラスを定義してパース
const data = axios.get<クラス[]>("複雑なJsonを返すURL");
2.getの結果をとりあえずanyで受け取り、必要な部分だけをクラスのコンストラクタに渡す
axios
.get("("複雑なJsonを返すURL")
.then((results) => {
const items = JSON.stringify(results.data);
const parseItems = JSON.parse(items);
const data = new クラス(parseItems.必要な項目1,parseItems.必要な項目2...)
以下略
「1」の方法は、不要な項目もクラスに定義するのでいろいろ無駄が多いが、オブジェクトの作成が簡単。
「2」の方法は、型情報が使えなくて不便。だなと思ったのですが、
上記のような場合、通常はどちらの方法を使うものでしょうか?
もしくは全然別なやり方があれば教えていただきたいです。
WebAPIを呼んでJsonを取得し、その一部の項目を使いたいのですが、
以下の2つの方法を考えました。
1.提供されるJsonと全く同じ項目をもつクラスを定義してパース
const data = axios.get<クラス[]>("複雑なJsonを返すURL");
2.getの結果をとりあえずanyで受け取り、必要な部分だけをクラスのコンストラクタに渡す
axios
.get("("複雑なJsonを返すURL")
.then((results) => {
const items = JSON.stringify(results.data);
const parseItems = JSON.parse(items);
const data = new クラス(parseItems.必要な項目1,parseItems.必要な項目2...)
以下略
「1」の方法は、不要な項目もクラスに定義するのでいろいろ無駄が多いが、オブジェクトの作成が簡単。
「2」の方法は、型情報が使えなくて不便。だなと思ったのですが、
上記のような場合、通常はどちらの方法を使うものでしょうか?
もしくは全然別なやり方があれば教えていただきたいです。
839デフォルトの名無しさん
2021/07/15(木) 23:21:53.74ID:/VADaM7m すみません838です。自己解決です。
2の方法で、
const parseItems : インターフェース = JSON.parse(items);
みたいにすれば、必要なとこだけ埋めることできました。
2の方法で、
const parseItems : インターフェース = JSON.parse(items);
みたいにすれば、必要なとこだけ埋めることできました。
840デフォルトの名無しさん
2021/08/27(金) 21:03:15.72ID:OujrQnBG Announcing TypeScript 4.4
https://devblogs.microsoft.com/typescript/announcing-typescript-4-4/
https://devblogs.microsoft.com/typescript/announcing-typescript-4-4/
841デフォルトの名無しさん
2021/09/11(土) 04:09:02.19ID:o78CvgiA Express を用いてwebアプリケーションを開発しているものです。質問なのですが、webpackで.tsのコンパイルとバンドルを行う際に出来たbundle.jsをdist フォルダに出力するとして、.ejs などのテンプレートが入ったviewsはどこに配置するのが正しいのでしょう。srcでいいような気もするのですが、実際に動くのはbundle.jsだし、dist の方がいいのかなと…….
842デフォルトの名無しさん
2021/09/17(金) 12:17:55.85ID:4jDmhT28 ようやくtsconfigのmoduleをesnextにしたわ
843デフォルトの名無しさん
2021/09/17(金) 17:43:37.86ID:ELLRTb6O むしろesnextにしてない人って何が理由なの?
844デフォルトの名無しさん
2021/09/29(水) 00:27:22.98ID:Ucgex+Jd TS型安全は良いけどハマると時間ロスするね
エラーパッと見ではなんでエラーが出てるかわからない
C++をやってた頃を思い出した
エラーパッと見ではなんでエラーが出てるかわからない
C++をやってた頃を思い出した
845デフォルトの名無しさん
2021/09/30(木) 18:43:43.57ID:4/dpkDC7 TSってプログラミングしてるっていうより問題解いてる感が強い
846デフォルトの名無しさん
2021/09/30(木) 21:24:56.16ID:dN1VyuR8 パズルっぽくはあるが。スリザーリンクみたいに定石に当てはめたらパタパタと解けていく印象だな。
847デフォルトの名無しさん
2021/10/12(火) 20:50:09.62ID:2QmYiCE7 TypeScriptのジェネリクスで型消去する方法って無いんだっけ?
あるいはJavaのワイルドカード型<?>みたいなのとか。
あるいはJavaのワイルドカード型<?>みたいなのとか。
848デフォルトの名無しさん
2021/10/12(火) 21:03:38.69ID:hmExHRrM as any
849デフォルトの名無しさん
2021/10/12(火) 21:44:00.66ID:2QmYiCE7 ああなるほど、<T extends any>なら<any>でいいわけか。
850デフォルトの名無しさん
2021/10/19(火) 13:43:00.05ID:W8Yk+b6r Promiseを同期的にwaitすることってできますか?
awaitではなくC#のTaskで言うところの.Resultなんですが…
awaitではなくC#のTaskで言うところの.Resultなんですが…
851デフォルトの名無しさん
2021/10/19(火) 13:54:59.42ID:QUfGkxyV できない
852デフォルトの名無しさん
2021/10/19(火) 14:08:46.54ID:W8Yk+b6r え、できないんですか困った
外部ライブラリに渡すコールバック関数がPromiseをサポートしてない
けど、その中で非同期関数を呼びたい
というユースケースなんですが諦めるしかないんですかね…
外部ライブラリに渡すコールバック関数がPromiseをサポートしてない
けど、その中で非同期関数を呼びたい
というユースケースなんですが諦めるしかないんですかね…
853デフォルトの名無しさん
2021/10/19(火) 14:41:50.05ID:LLvKMRJR C#は呼び出し側のスレッドをブロックしてもTaskは別スレッドで動いてるから困らない
JavaScriptはシングルスレッドだから同期的にwaitできたら
呼び出し側がブロックされるだけじゃなくPromiseで動かそうとしてる処理もブロックされるので困る
コールバック関数をPromise化すればいいケースのような気がする
JavaScriptはシングルスレッドだから同期的にwaitできたら
呼び出し側がブロックされるだけじゃなくPromiseで動かそうとしてる処理もブロックされるので困る
コールバック関数をPromise化すればいいケースのような気がする
854デフォルトの名無しさん
2021/10/19(火) 14:52:46.98ID:W8Yk+b6r コールバックというと正確じゃないかもなんですけど
あるフレームワークが拡張のためのフックをサポートしてる
その関数は決まった名前のjsあるいはtsファイルのデフォルトエクスポートで指定する
フレームワークはそれがあれば利用し、なければ何もしない
その関数のシグネチャーは非同期をサポートしてない
こんな感じのシチュエーションですね
あるフレームワークが拡張のためのフックをサポートしてる
その関数は決まった名前のjsあるいはtsファイルのデフォルトエクスポートで指定する
フレームワークはそれがあれば利用し、なければ何もしない
その関数のシグネチャーは非同期をサポートしてない
こんな感じのシチュエーションですね
855デフォルトの名無しさん
2021/10/19(火) 17:26:32.56ID:LLvKMRJR856デフォルトの名無しさん
2021/10/19(火) 19:00:11.55ID:W8Yk+b6r >>855
Promiseもサポートされてないです
function libFunc( myFunc: (x: X) => Y )
イメージとしてはこんな感じで
myFuncはPromiseを返せないようなってます
myFuncのなかでOneWayのPromiseを走らせてPromiseを捨てることはできますが
libFuncはmyFuncの戻りであるYを使って処理を続けるのでOneWayでは意味がありません
Promiseもサポートされてないです
function libFunc( myFunc: (x: X) => Y )
イメージとしてはこんな感じで
myFuncはPromiseを返せないようなってます
myFuncのなかでOneWayのPromiseを走らせてPromiseを捨てることはできますが
libFuncはmyFuncの戻りであるYを使って処理を続けるのでOneWayでは意味がありません
857デフォルトの名無しさん
2021/10/19(火) 19:38:25.38ID:QUfGkxyV const ox = await new Promise(resolve=>
libFunc(x=> {
// yを作成
resolve(x)
return y
}))
とかじゃ駄目なん?
libFunc(x=> {
// yを作成
resolve(x)
return y
}))
とかじゃ駄目なん?
858デフォルトの名無しさん
2021/10/19(火) 20:05:08.21ID:W8Yk+b6r859デフォルトの名無しさん
2021/10/19(火) 20:07:52.68ID:2lJX9loQ >>856
やりたいことがいまいちわからんが、同期呼び出しでmyFuncの結果を取得したいというならそれは無理。
やりたいことがいまいちわからんが、同期呼び出しでmyFuncの結果を取得したいというならそれは無理。
860デフォルトの名無しさん
2021/10/19(火) 21:03:40.36ID:LLvKMRJR Promiseも使えないならもう一つ昔のコールバックヘル方式でやるしかないね
861デフォルトの名無しさん
2021/10/19(火) 21:14:06.31ID:QUfGkxyV862デフォルトの名無しさん
2021/10/28(木) 09:19:43.09ID:Qx9i2vDk 変数の先頭に$を付けるのは何の意味があるのでしょう?
863デフォルトの名無しさん
2021/10/28(木) 09:36:01.90ID:3VMLYSLP そんな事しません
864デフォルトの名無しさん
2021/10/28(木) 23:51:25.40ID:vOpe/LV1 DOM のエレメントだよって示す
865デフォルトの名無しさん
2021/10/29(金) 00:01:40.58ID:e9XHTkBz PHPerでも出来た!と主張する
866デフォルトの名無しさん
2021/10/31(日) 10:32:24.95ID:gOKmIPxI Cの __FILE__ や __LINE__ みたいにトランスパイル前のファイル名や行番号を埋め込む方法って無いのかな?
一応source-map-supportでスタックトレースは読めるようになったけど、もっと手軽に埋め込むログで
場所を示せたらいいんだが。
一応source-map-supportでスタックトレースは読めるようになったけど、もっと手軽に埋め込むログで
場所を示せたらいいんだが。
867デフォルトの名無しさん
2021/10/31(日) 12:11:14.90ID:Xdv2iZD2 TypeScript の仕事じゃない
868デフォルトの名無しさん
2021/10/31(日) 12:31:29.22ID:gOKmIPxI tscの前にプリプロセッサとかかまして実現できるならそれでもいいんだけど。
869デフォルトの名無しさん
2021/10/31(日) 12:33:38.24ID:OQlLkoA+ しょせんはトランスパイラ
多くを求めたらダメだ
多くを求めたらダメだ
870デフォルトの名無しさん
2021/10/31(日) 21:52:21.68ID:plSPEajD >>866
英語で議論できれば提案すればいいと思うけどね
英語で議論できれば提案すればいいと思うけどね
871デフォルトの名無しさん
2021/10/31(日) 22:25:46.49ID:+4LFgdgS >>868
手動でやるのは簡単だよね?
TS使ってないからビルドシステム知らんけど、Pythonか何かを挟み込める余地があったらそこでやってしまえば?
或いはいっそのことmakefileでラップしてしまうとか。(makefile内でビルドコマンドを起動)
手動でやるのは簡単だよね?
TS使ってないからビルドシステム知らんけど、Pythonか何かを挟み込める余地があったらそこでやってしまえば?
或いはいっそのことmakefileでラップしてしまうとか。(makefile内でビルドコマンドを起動)
872デフォルトの名無しさん
2021/10/31(日) 23:58:24.90ID:gOKmIPxI ありがとう。無いってことね。
873871
2021/11/01(月) 00:27:26.36ID:M14pmKjL >>872
多分ね。(俺は871、TS使ってない)
他言語(何だったかは忘れた)でも同様に「ないのか?」って聞かれてて、
仕様に入れない理由が「ちゃんと関数名書け」だったと思ったよ。
実際あれって、実装するのは簡単だけど、Cにしかないでしょ。
個人開発ならともかく、Gitな今だと複数バージョンが同時に使われてたりするから、収拾付かなくなるのではないかな。
その辺のCの便利機能って、今の大規模開発にはフィットしないから、基本的には嫌われてる。
多分、提案したところで入らない。
多分ね。(俺は871、TS使ってない)
他言語(何だったかは忘れた)でも同様に「ないのか?」って聞かれてて、
仕様に入れない理由が「ちゃんと関数名書け」だったと思ったよ。
実際あれって、実装するのは簡単だけど、Cにしかないでしょ。
個人開発ならともかく、Gitな今だと複数バージョンが同時に使われてたりするから、収拾付かなくなるのではないかな。
その辺のCの便利機能って、今の大規模開発にはフィットしないから、基本的には嫌われてる。
多分、提案したところで入らない。
874デフォルトの名無しさん
2021/11/01(月) 00:59:41.61ID:KlMso67D TypeScriptのポリシー的に絶対入らない
875デフォルトの名無しさん
2021/11/01(月) 08:42:35.30ID:43zjctJQ 技術的にそう難しくもなさそうなのに今無いってことはもう入れられる見込みは無いんだろうけど
これが絶対に相容れられないようなポリシーってなんかあったかな?
これが絶対に相容れられないようなポリシーってなんかあったかな?
876デフォルトの名無しさん
2021/11/01(月) 18:25:45.93ID:ZjFzlu/6 TSって滅多にクラス使わないけどDIってどうやってんの?
877デフォルトの名無しさん
2021/11/01(月) 20:45:04.19ID:bXtGRcPZ クラス全く使わないわけじゃないよ。まぁ明示的に副作用使いたい時ぐらいしか使わないけど
878デフォルトの名無しさん
2021/11/11(木) 15:10:53.10ID:CHcG8Nbi DIの件はこれで解決した
function F(deps: { … }, p1: T1, p2: T2)
よくよく考えると
たったこれだけのことだったんだ
フレームワークとかややこしいことを考えたのが間違いだった
function F(deps: { … }, p1: T1, p2: T2)
よくよく考えると
たったこれだけのことだったんだ
フレームワークとかややこしいことを考えたのが間違いだった
879デフォルトの名無しさん
2021/11/11(木) 19:34:48.71ID:CHcG8Nbi type X = {
foo: string;
bar: string;
baz: string;
}
この型から
type Y = {
foo: string;
bar: string;
}
この型をMappedTypesで定義したい
つまり特定の属性を除去した型を作りたいのだけど出来る?
foo: string;
bar: string;
baz: string;
}
この型から
type Y = {
foo: string;
bar: string;
}
この型をMappedTypesで定義したい
つまり特定の属性を除去した型を作りたいのだけど出来る?
880デフォルトの名無しさん
2021/11/11(木) 21:14:57.72ID:P2a3zHOn Utility Types の Omit とか。
881デフォルトの名無しさん
2021/11/16(火) 12:37:58.33ID:Gu6EBfCm .NETでいうところの.NET StandardのようなものってTSには無いの?
フルスタックでTS使う案件に間違って入っちゃったんだけど環境ごとに何が出来るのか把握しきれなくてツラミを感じる
ストリームと文字列の処理みたいな「こんなもんどの環境でも動くだろ」ってコードすら移植すると動かない時があって泣きそう
スタンダードなライブラリが無いならビルダーの設定でもいい
tsconfigでターゲットプラットフォームとランタイムバージョンを指定すると「このパッケージはこのターゲットプラットフォームでは使えないよ」って教えてくれるだけでもだいぶ楽になると思うんだけど…
こういう機能ってどっかに絶対あると思うんだけどググっても古い断片的な情報ばっかり出てきてその設定を探すのも難しい
フルスタックでTS使う案件に間違って入っちゃったんだけど環境ごとに何が出来るのか把握しきれなくてツラミを感じる
ストリームと文字列の処理みたいな「こんなもんどの環境でも動くだろ」ってコードすら移植すると動かない時があって泣きそう
スタンダードなライブラリが無いならビルダーの設定でもいい
tsconfigでターゲットプラットフォームとランタイムバージョンを指定すると「このパッケージはこのターゲットプラットフォームでは使えないよ」って教えてくれるだけでもだいぶ楽になると思うんだけど…
こういう機能ってどっかに絶対あると思うんだけどググっても古い断片的な情報ばっかり出てきてその設定を探すのも難しい
882デフォルトの名無しさん
2021/11/17(水) 21:29:35.22ID:h3+MjybB 主な実行環境として node.js とブラウザがあるってことはわかってる?
883デフォルトの名無しさん
2021/11/18(木) 00:15:24.62ID:3dlOBCKi あとは泥とりんごでしょ?
せめてその4つのメジャーな環境でほぼほぼ同じように動く基本ライブラリ、基本ライブラリだけに依存して、つまりほぼほぼどこでも動くサードパーティライブラリ
それらが日常的な作業に不自由しないレベルで揃ってて然るべきだろう、と俺は思うんだけど無いのかな?
せめてその4つのメジャーな環境でほぼほぼ同じように動く基本ライブラリ、基本ライブラリだけに依存して、つまりほぼほぼどこでも動くサードパーティライブラリ
それらが日常的な作業に不自由しないレベルで揃ってて然るべきだろう、と俺は思うんだけど無いのかな?
884デフォルトの名無しさん
2021/11/18(木) 00:23:00.28ID:cf0G7PVa 基本ライブラリというならJavaScript API群があるが。
「日常的な作業に不自由しないレベル」って具体的にはどんなものを期待している?
「日常的な作業に不自由しないレベル」って具体的にはどんなものを期待している?
885デフォルトの名無しさん
2021/11/18(木) 00:34:29.18ID:3dlOBCKi .NET Standardぐらいの想定かな
886デフォルトの名無しさん
2021/11/18(木) 06:41:05.66ID:In+gpp4R まず.NETが世界の中心。みんな知ってるだろ全部揃ってて当然だろみたいな考え方をやめろ。
フロント側についてはサイの絵が書いてある本買ってくるか、MDNを熟読すれば良い。Node側はNodeの公式を読め。話はそれから。
あとはtsconfigのcompilerOptions以下のtargetとlibを指定しろ。この辺はNodeのバージョンや、対象ブラウザで変わるからググれ。すぐ出てくる。
フロント側についてはサイの絵が書いてある本買ってくるか、MDNを熟読すれば良い。Node側はNodeの公式を読め。話はそれから。
あとはtsconfigのcompilerOptions以下のtargetとlibを指定しろ。この辺はNodeのバージョンや、対象ブラウザで変わるからググれ。すぐ出てくる。
887デフォルトの名無しさん
2021/11/18(木) 07:16:30.61ID:te8WLqUU > 主な実行環境として node.js とブラウザがあるってことはわかってる?
> あとは泥とりんごでしょ?
これわかってないだろ
> あとは泥とりんごでしょ?
これわかってないだろ
888デフォルトの名無しさん
2021/11/18(木) 08:57:28.17ID:Ip1KYC/r Announcing TypeScript 4.5
https://devblogs.microsoft.com/typescript/announcing-typescript-4-5/
https://devblogs.microsoft.com/typescript/announcing-typescript-4-5/
889デフォルトの名無しさん
2021/11/18(木) 12:49:52.50ID:xCTrnppv 自分は知っているみたいな錯覚してるせいで根本的に間違ってることに気づいてない
890デフォルトの名無しさん
2021/11/18(木) 12:57:37.30ID:3dlOBCKi ttps://stackoverflow.com/questions/57435686/filereader-is-not-defined-with-angular-server-side-rendering
適当にググったらこんなんあったけど、
要するに、こういうことだよな
これはただの一例だけど、ストリームと文字列の変換なんてなんかはさ、いいかい?
全ての開発者が、ドキュメントを熟読せず、何の迷いもなく、インテリセンスに導かれて、スラスラと書けてだよ
そして、それが驚き最小で、思った通りに動作する
それがモダンな高級言語として、当たり前の姿なんじゃないのかい?
TSのメンテナは真新しさばかり追い求めて、足場を固めるという、地味だが大切な仕事を忘れてやしないか?
適当にググったらこんなんあったけど、
要するに、こういうことだよな
これはただの一例だけど、ストリームと文字列の変換なんてなんかはさ、いいかい?
全ての開発者が、ドキュメントを熟読せず、何の迷いもなく、インテリセンスに導かれて、スラスラと書けてだよ
そして、それが驚き最小で、思った通りに動作する
それがモダンな高級言語として、当たり前の姿なんじゃないのかい?
TSのメンテナは真新しさばかり追い求めて、足場を固めるという、地味だが大切な仕事を忘れてやしないか?
891デフォルトの名無しさん
2021/11/18(木) 13:22:17.68ID:In+gpp4R 根本的な勘違いとして、それはTypeScriptの責務では無い。TypeScriptはJavaScriptにモダンな型を付与するもの(一部例外はある)で、APIの提供はしない。
例に出てきたFileReaderの様なAPIはブラウザとNode側で求められる機能もセキュリティレベルも異なり、それぞれが提供するものだ。それを統一はできない。ましてnpmのバッケージで提供されているものはパッケージ作者が責務を負うものだ。
自分の勉強不足を棚に上げて言語に文句を言うのは筋違いも良いとこ。
例に出てきたFileReaderの様なAPIはブラウザとNode側で求められる機能もセキュリティレベルも異なり、それぞれが提供するものだ。それを統一はできない。ましてnpmのバッケージで提供されているものはパッケージ作者が責務を負うものだ。
自分の勉強不足を棚に上げて言語に文句を言うのは筋違いも良いとこ。
892デフォルトの名無しさん
2021/11/18(木) 14:09:39.19ID:3dlOBCKi そこがTSの限界であり、使いにくい原因なんだろなぁ
FileReaderなんてのはたまたま出てきた一例でしかないが
リンク先のポストを読めば、トピ主のやりたいことはストリームから文字列への変換とわかるだろう
その程度はどのプラットフォームでもサポートできる
使用頻度もそこそこだから、標準ライブラリとして用意されていて当たり前
encode(s: string, format: string): Blob
decode(b: Blob, format: string): string
これでいいだろ?
セキュリティやハードウェアに依存するものが標準化されないのは許されるだろう
しかしなぜ簡単にできるものすら標準化しない?
FileReaderなんてのはたまたま出てきた一例でしかないが
リンク先のポストを読めば、トピ主のやりたいことはストリームから文字列への変換とわかるだろう
その程度はどのプラットフォームでもサポートできる
使用頻度もそこそこだから、標準ライブラリとして用意されていて当たり前
encode(s: string, format: string): Blob
decode(b: Blob, format: string): string
これでいいだろ?
セキュリティやハードウェアに依存するものが標準化されないのは許されるだろう
しかしなぜ簡単にできるものすら標準化しない?
893デフォルトの名無しさん
2021/11/18(木) 16:35:20.00ID:In+gpp4R そのストリームってのは何のストリーム?
ひょっとして用語を間違えてるから調べても出てこないのでは?
ひょっとして用語を間違えてるから調べても出てこないのでは?
894デフォルトの名無しさん
2021/11/19(金) 07:13:45.00ID:UKAZMSSR >>888
型演算に末尾再帰最適化(みたいなの)追加されるやん!
型演算に末尾再帰最適化(みたいなの)追加されるやん!
895デフォルトの名無しさん
2021/11/21(日) 12:03:30.92ID:lhVIl0/s 型の@types だけインポートするにはどうしたらよいでしょうか。
leafletという地図のjsライブラリがあって、グローバルでL という変数をnamespaceとして使っています。
npmの層を薄くしたくて、地図ライブラリはnpm を使わずにhtmlにscriptタグを直接書いて読み込んでいます。
でも型補完は欲しいので、"@types/leaflet"はnpmでインストールしています。
この状態で変数L に型補完を動作させるにはどうすればよいでしょうか。
何もしないと、変数Lは未定義だよ というエラーが出ます。
(エラーを消すだけなら適当なd.tsを作って declare const L: any; とでも書けばいいんだろうけど)
leafletという地図のjsライブラリがあって、グローバルでL という変数をnamespaceとして使っています。
npmの層を薄くしたくて、地図ライブラリはnpm を使わずにhtmlにscriptタグを直接書いて読み込んでいます。
でも型補完は欲しいので、"@types/leaflet"はnpmでインストールしています。
この状態で変数L に型補完を動作させるにはどうすればよいでしょうか。
何もしないと、変数Lは未定義だよ というエラーが出ます。
(エラーを消すだけなら適当なd.tsを作って declare const L: any; とでも書けばいいんだろうけど)
896デフォルトの名無しさん
2021/11/21(日) 12:42:32.36ID:9+9LY8kt import type * as Leaflet from 'leaflet'
declare const L: typeof Leaflet
declare const L: typeof Leaflet
897デフォルトの名無しさん
2021/11/21(日) 12:53:04.47ID:lhVIl0/s ありがとうございます
898デフォルトの名無しさん
2021/11/23(火) 00:51:46.26ID:6fLWx+hU 空配列ってどうやって定義すればいいんでしょうか?
899デフォルトの名無しさん
2021/11/24(水) 20:42:59.28ID:KtJ2oMe7 Dateが使いにくいのどうにかする最高のライブラリ教えてよ
date-nfs、momentあたりは試したけどしっくりこんかったわ
JSONが非対称ってのもSo Badやでほんま
よくこんな罠だらけの言語でやってられるなー
フロントエンド勢の忍耐力には尊敬の念を禁じえんわい
date-nfs、momentあたりは試したけどしっくりこんかったわ
JSONが非対称ってのもSo Badやでほんま
よくこんな罠だらけの言語でやってられるなー
フロントエンド勢の忍耐力には尊敬の念を禁じえんわい
900デフォルトの名無しさん
2021/11/24(水) 21:53:47.96ID:mN6taiyI901デフォルトの名無しさん
2021/11/24(水) 22:01:40.70ID:zBacYw4i902デフォルトの名無しさん
2021/11/24(水) 23:40:29.12ID:FcSkbZGe903デフォルトの名無しさん
2021/11/26(金) 22:12:29.88ID:+KFAtmTP Effective TypeScript
ちと古いが読んだ方がいい?
ちと古いが読んだ方がいい?
904デフォルトの名無しさん
2021/12/02(木) 17:06:08.00ID:kge1UpiO あーくそ
なんでstrictをOFFにできるんだよ
VB.NETか!
なんでstrictをOFFにできるんだよ
VB.NETか!
905デフォルトの名無しさん
2021/12/02(木) 18:20:28.57ID:Kt63btcl いやなんでfalseにするんだよ
906デフォルトの名無しさん
2021/12/02(木) 22:30:30.27ID:Ki4y/ScD 既存の JavaScript を段階的に移行したい時かな
907デフォルトの名無しさん
2021/12/07(火) 10:10:01.42ID:rXzUIf2/ 非同期がよーわからん
ワーカーを考えない場合
ブラウザでもモバイルでもバックエンドでも基本的に一本のキューにジョブを入れてって順次処理するモデル
promiseやawaitを使うと処理の前後関係は保障されるけど間に他のジョブが割り込む可能性がある
処理そのものはシングルスレッドで行われるのでpromiseやawaitを挟まない限り全てのJSコードがアトミックに実行される
fetchなどJS外の処理についてはアトミックは保障されない
こんな感じであっとる???
ワーカーを考えない場合
ブラウザでもモバイルでもバックエンドでも基本的に一本のキューにジョブを入れてって順次処理するモデル
promiseやawaitを使うと処理の前後関係は保障されるけど間に他のジョブが割り込む可能性がある
処理そのものはシングルスレッドで行われるのでpromiseやawaitを挟まない限り全てのJSコードがアトミックに実行される
fetchなどJS外の処理についてはアトミックは保障されない
こんな感じであっとる???
908デフォルトの名無しさん
2021/12/07(火) 22:24:43.13ID:aDEs4G8x JavaScript Visualized: Event Loop
https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif
https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif
909デフォルトの名無しさん
2021/12/08(水) 07:25:06.20ID:ff6DaDGr >>907
だいたい合ってる。基本的には処理の予約と考えるだけで済む。
JS外の処理はWebWorker含めてJS環境に干渉してこないんだから(戻り値以外)ほぼイベントとか割込と同質で特殊なものだと考える必要もなくないかな?
だいたい合ってる。基本的には処理の予約と考えるだけで済む。
JS外の処理はWebWorker含めてJS環境に干渉してこないんだから(戻り値以外)ほぼイベントとか割込と同質で特殊なものだと考える必要もなくないかな?
910デフォルトの名無しさん
2021/12/09(木) 14:21:48.83ID:h+aQCsXU なんかプロジェクトでtypescript使う流れになって今から勉強してるんだが、これ何に優れてるの?
javascriptの拡張言語で型の宣言できるぐらいがメリット?
実行するためにいちいちコンパイルもどきなことをしないといけないしデバッグ面倒で正直やりづらいとしか思えないんだが
javascriptの拡張言語で型の宣言できるぐらいがメリット?
実行するためにいちいちコンパイルもどきなことをしないといけないしデバッグ面倒で正直やりづらいとしか思えないんだが
911デフォルトの名無しさん
2021/12/09(木) 14:29:35.72ID:lTugl+ha 「正直、特別優れた言語設計でもないし、基本的なライブラリ貧弱だし、なんか色々と不安定なので、他の言語を使えるならそっちのがいい。
でもJavaScriptよりかは遥かにマシだからターゲットプラットフォームがブラウザ、ReactNativeなら積極的に使っていこうぜ」ぐらいの認識ですかね
型パズルとかゆるゆるなインターフェースとか最初はこりゃ楽チン、便利だなと思うけどメンテナンス性は疑問
あとTypeScriptは生のJavaScriptよりanyの凶悪さが増してると思う
所詮はALT JSですね
でもJavaScriptよりかは遥かにマシだからターゲットプラットフォームがブラウザ、ReactNativeなら積極的に使っていこうぜ」ぐらいの認識ですかね
型パズルとかゆるゆるなインターフェースとか最初はこりゃ楽チン、便利だなと思うけどメンテナンス性は疑問
あとTypeScriptは生のJavaScriptよりanyの凶悪さが増してると思う
所詮はALT JSですね
912デフォルトの名無しさん
2021/12/09(木) 16:46:11.49ID:V/6JaBTF >>910
watch使うとわざわざコンパイルする手間が省けるので楽だよ。あとmapファイルも出力するようにすればデバック時も面倒じゃなくなるよ。
型だけじゃなくて、同じコードで古い環境でも動くソースを吐くこともできるよ。
でも、型にメリットを見いださない人向けの言語で無いね。
watch使うとわざわざコンパイルする手間が省けるので楽だよ。あとmapファイルも出力するようにすればデバック時も面倒じゃなくなるよ。
型だけじゃなくて、同じコードで古い環境でも動くソースを吐くこともできるよ。
でも、型にメリットを見いださない人向けの言語で無いね。
913デフォルトの名無しさん
2021/12/09(木) 20:23:42.31ID:/vSkUWU0 動的型付け言語しか使ったことがない人ならそんなものだよね
914デフォルトの名無しさん
2021/12/10(金) 13:52:02.48ID:+cpc+hgB 個人開発だとTypeScriptガンガン使ってる
型パズルたのちい
型パズルたのちい
915デフォルトの名無しさん
2021/12/10(金) 16:44:26.21ID:IDIER0Zn 型パズルはアンチパターンだ
ほどほどにしとけ
人類はC++を教訓にしなければならない
ほどほどにしとけ
人類はC++を教訓にしなければならない
916デフォルトの名無しさん
2021/12/10(金) 17:18:46.95ID:AY2SRHbF TypeScriptにはSFINAEみたいな凶悪な仕様はないだろう。
conditional typeは少し難解かもしれないが自分で使わなければいいだけのことだし。
conditional typeは少し難解かもしれないが自分で使わなければいいだけのことだし。
917デフォルトの名無しさん
2021/12/21(火) 11:07:25.83ID:vugugi2u any型のデータをそれ以外の型に変換可能かどうか判定する、または変換するライブラリってあります?
↓こんな感じの
type T = { id: number; name?: string; timestamp: Date; }
const data1: any = { id: 1, name: “bob”, timestamp: new Date() }
const t1: = convert<T>(data1); // OK
const data2: any = {
id: “2”, // number format string
timestamp: “2021-12-21T11:00:00Z”, // ISO Date string
}
const t2 = convert<T>(data2); // OK
const data3: any = { // without required field
timestamp: new Date()
}
const t3 = convert<T>(data3); // throw Error
const data4: any = {
id: 4,
timestamp: “hello” // invalid format
}
const t4 = convert<T>(data4) // throw Error
↓こんな感じの
type T = { id: number; name?: string; timestamp: Date; }
const data1: any = { id: 1, name: “bob”, timestamp: new Date() }
const t1: = convert<T>(data1); // OK
const data2: any = {
id: “2”, // number format string
timestamp: “2021-12-21T11:00:00Z”, // ISO Date string
}
const t2 = convert<T>(data2); // OK
const data3: any = { // without required field
timestamp: new Date()
}
const t3 = convert<T>(data3); // throw Error
const data4: any = {
id: 4,
timestamp: “hello” // invalid format
}
const t4 = convert<T>(data4) // throw Error
918デフォルトの名無しさん
2021/12/21(火) 11:18:51.59ID:vugugi2u TypeScriptって型が嘘をつくことが結構あって
Date型なのに実行時には文字列が入ってるとか
型定義では省略不可なのに実行時には省略されてるとか
そういう実行時の型エラーをなんとかして削減したい、というのが根本的な課題です
上でレスしたようなライブラリがもし有れば多少はマシになるかな、と
ランタイムがキャスト例外を投げてくれればそれがベストなんですが、JSに実行時型情報はないのでそれは難しい
Date型なのに実行時には文字列が入ってるとか
型定義では省略不可なのに実行時には省略されてるとか
そういう実行時の型エラーをなんとかして削減したい、というのが根本的な課題です
上でレスしたようなライブラリがもし有れば多少はマシになるかな、と
ランタイムがキャスト例外を投げてくれればそれがベストなんですが、JSに実行時型情報はないのでそれは難しい
919デフォルトの名無しさん
2021/12/21(火) 18:51:42.35ID:X++9NQ8p > JSに実行時型情報はないので
つ typeof, instanceof
つ typeof, instanceof
920デフォルトの名無しさん
2021/12/21(火) 19:01:16.33ID:S4hmWBPH すげー斜め読みしてタイプガードではいかんのかと思った
921デフォルトの名無しさん
2021/12/21(火) 19:16:55.14ID:ESVu6HO8 タイプガードでもいいんですけど数が多いので一発で全部よしなにやってくれるものがほしいって感じですかね
C#のdynamicのように非互換の代入をその場で例外にしてくれれば楽なんですが
なんでかanyは非互換でもエラー無しでスルッと進んでしまうので苦労してます
C#のdynamicのように非互換の代入をその場で例外にしてくれれば楽なんですが
なんでかanyは非互換でもエラー無しでスルッと進んでしまうので苦労してます
922デフォルトの名無しさん
2021/12/21(火) 19:39:34.82ID:S6JYHyb7923デフォルトの名無しさん
2021/12/21(火) 20:01:09.90ID:ESVu6HO8924デフォルトの名無しさん
2021/12/21(火) 20:08:19.40ID:fpjBPgEH TypeScriptのtypeやinterfaceからjsonschemaを生成するライブラリがあるから
それを使ってタイプガード書けば楽よ。
それを使ってタイプガード書けば楽よ。
925デフォルトの名無しさん
2021/12/21(火) 20:09:36.77ID:S6JYHyb7926デフォルトの名無しさん
2021/12/21(火) 20:12:46.39ID:S4hmWBPH そういえばAJVがタイプガードに対応してたな
927デフォルトの名無しさん
2021/12/21(火) 20:17:02.00ID:ESVu6HO8928デフォルトの名無しさん
2021/12/21(火) 20:28:04.08ID:S6JYHyb7 string -> Date のような transform をしたいなら、型から自動生成を期待するよりもスキーマで変換ロジックを書いて型を導出するアプローチの方が扱いやすい
929デフォルトの名無しさん
2021/12/23(木) 16:09:01.04ID:qSHzxodN axiosでの(非同期)通信結果から
最終的にpromiseを外した形でresponse扱いたいんだけど
どうやるとできるのでしょうか?
function的な奴で非同期通信して
そのfunction自体はpromiseでない値を返したいんだけど。。。
awaitやろうと思うと
そのfunctionはasyncになって
結局promiseになってしまう
イメージ
conct func = (): string => {
// axiosの戻りがstringだとして、このvalを同期的に返したい
axios.get("hogehoge").then(val=>{return val})
}
最終的にpromiseを外した形でresponse扱いたいんだけど
どうやるとできるのでしょうか?
function的な奴で非同期通信して
そのfunction自体はpromiseでない値を返したいんだけど。。。
awaitやろうと思うと
そのfunctionはasyncになって
結局promiseになってしまう
イメージ
conct func = (): string => {
// axiosの戻りがstringだとして、このvalを同期的に返したい
axios.get("hogehoge").then(val=>{return val})
}
930デフォルトの名無しさん
2021/12/23(木) 20:50:37.85ID:aMbIyyBR 不可能です
直接 XMLHttpRequest を同期モードで使用してください
直接 XMLHttpRequest を同期モードで使用してください
931デフォルトの名無しさん
2021/12/23(木) 22:47:01.90ID:j1Nwu6l7 非同期を同期にはできない。
これ、初心者の頃は辛かったけど、気がついたら慣れてたし不便さより便利さを感じるようになったから人間の適応能力ってすごい。
これ、初心者の頃は辛かったけど、気がついたら慣れてたし不便さより便利さを感じるようになったから人間の適応能力ってすごい。
932デフォルトの名無しさん
2021/12/24(金) 11:16:13.19ID:8YLKxFwi うーんわからん
type X = A & { foo: string}
ってやるとXがanyと判定される現象が起きてて原因が全くわからない
Aはちゃんと型が認識されてる
const a: A = { 略 }
a.
ここまで打てばインテリセンスが出てくる
でも&を挟むとなぜかanyになる
コンパイラのバグかな?
type X = A & { foo: string}
ってやるとXがanyと判定される現象が起きてて原因が全くわからない
Aはちゃんと型が認識されてる
const a: A = { 略 }
a.
ここまで打てばインテリセンスが出てくる
でも&を挟むとなぜかanyになる
コンパイラのバグかな?
933デフォルトの名無しさん
2021/12/24(金) 12:01:47.45ID:vCO0x3fk export type X = A & { foo: string }
const x: X
これは型が生きてるしインテリセンスも出る
import { X } from ‘…’
const x: X
これはanyになってしまう
ファイルを跨がなければおkみたい
エクスポート/インポートのプロセスでバグるのかな?
他の型は問題出てないからAだけが特殊なんだろうけど文字列型のフィールド幾つか持ってるだけのなんの変哲もない型なんだよな…
const x: X
これは型が生きてるしインテリセンスも出る
import { X } from ‘…’
const x: X
これはanyになってしまう
ファイルを跨がなければおkみたい
エクスポート/インポートのプロセスでバグるのかな?
他の型は問題出てないからAだけが特殊なんだろうけど文字列型のフィールド幾つか持ってるだけのなんの変哲もない型なんだよな…
934デフォルトの名無しさん
2021/12/25(土) 12:39:31.39ID:mJNzEC98 色々調べて行き詰まったんだけどこれで合ってる?
babelのpreset-typescriptはTSから形情報を落としてるだけ
なのでtsconfigを無視する
なのでproject referencesも無視される
プロジェクト分割したい場合のオフィシャルな手段がない
なのでプロジェクト分割したければ各自好きな方法でハックするしかない
暫定対応として被参照側のプロジェクトでwatch & buildを仕掛けて
babel側のプロジェクトから被参照側の出力フォルダをimportしてるんだけど正直辛いものがある
babelのpreset-typescriptはTSから形情報を落としてるだけ
なのでtsconfigを無視する
なのでproject referencesも無視される
プロジェクト分割したい場合のオフィシャルな手段がない
なのでプロジェクト分割したければ各自好きな方法でハックするしかない
暫定対応として被参照側のプロジェクトでwatch & buildを仕掛けて
babel側のプロジェクトから被参照側の出力フォルダをimportしてるんだけど正直辛いものがある
935デフォルトの名無しさん
2021/12/25(土) 13:16:26.59ID:YYlOH5kW babel がどう動くかなんて tsc には関係ないだろ
それともあなたのエディタは babel で型情報を解析しているのか?
それともあなたのエディタは babel で型情報を解析しているのか?
936デフォルトの名無しさん
2021/12/25(土) 13:22:25.16ID:YYlOH5kW コンパイル済みのファイルに型情報がないという話なら、型定義ファイル(.d.ts)も出力しないとそりゃそうだろと
937デフォルトの名無しさん
2021/12/25(土) 13:40:07.40ID:mJNzEC98 プロジェクト分割についてはどう考えますか?
938デフォルトの名無しさん
2021/12/25(土) 13:54:01.89ID:YYlOH5kW 情報を小出しにせず、問題が再現するリポジトリ丸ごと上げるかせめてファイル構造や各種設定ファイルの内容など全部書き出して
& がダメなのかファイルを跨ぐのがダメなのかプロジェクト分割がダメなのか話がどんどん移っててわからんぞ
& がダメなのかファイルを跨ぐのがダメなのかプロジェクト分割がダメなのか話がどんどん移っててわからんぞ
939デフォルトの名無しさん
2021/12/25(土) 14:17:47.06ID:YYlOH5kW これ別人の別の話か…そうだったらスマン
940デフォルトの名無しさん
2021/12/25(土) 14:25:06.24ID:mJNzEC98 別ですね
単刀直入に言うとbabel & preset -typescript環境で正しいプロジェクト分割のしかたを聞きたかった
単刀直入に言うとbabel & preset -typescript環境で正しいプロジェクト分割のしかたを聞きたかった
941デフォルトの名無しさん
2021/12/26(日) 11:58:10.04ID:yczrikVs 色々と試して結論が出た
プロジェクト参照は諦めてシンプルに相対パスでimportすることにした
依存パッケージを全てのプロジェクトに入れなければならないのが面倒だけど妥協
ようするに昔VB6やC言語などでよくやってたDLL化せずにコードファイルを共有するスタイル
モダンな言語でやることとは思えないけど何日も調べてできないなら仕方ない
プロジェクト参照は諦めてシンプルに相対パスでimportすることにした
依存パッケージを全てのプロジェクトに入れなければならないのが面倒だけど妥協
ようするに昔VB6やC言語などでよくやってたDLL化せずにコードファイルを共有するスタイル
モダンな言語でやることとは思えないけど何日も調べてできないなら仕方ない
942デフォルトの名無しさん
2021/12/26(日) 12:26:32.69ID:6ScHvZpk バベるのが悪い
943デフォルトの名無しさん
2021/12/26(日) 16:05:00.89ID:SvIlyqah でもフレームワークがバベれって言うんです
944デフォルトの名無しさん
2021/12/26(日) 16:14:53.21ID:imvxWhRx これを
babel_proj
webpack_proj
tsc_proj
tsconfig.json
tsc_lib_1
tsconfig.json
tsc_lib_2
tsconfig.json
こうする
babel_proj
symlink => ../libs
webpack_proj
symlink => ../libs
tsc_proj
tsconfig.json
symlink => ../libs
libs
lib_1
lib_2
babel_proj
webpack_proj
tsc_proj
tsconfig.json
tsc_lib_1
tsconfig.json
tsc_lib_2
tsconfig.json
こうする
babel_proj
symlink => ../libs
webpack_proj
symlink => ../libs
tsc_proj
tsconfig.json
symlink => ../libs
libs
lib_1
lib_2
945デフォルトの名無しさん
2021/12/28(火) 17:28:42.45ID:X7A0KCIT バックエンドはexpress一択?
946デフォルトの名無しさん
2021/12/28(火) 20:29:49.68ID:qjWVy58S そんな🍌
947デフォルトの名無しさん
2021/12/28(火) 23:38:51.88ID:QExnrlZb 僕はFastify!
948デフォルトの名無しさん
2021/12/29(水) 02:36:36.80ID:tTEsT75E nestjsはレガシーなデコレータ依存がなあ
949デフォルトの名無しさん
2021/12/30(木) 13:04:36.50ID:8IVD/YcY そもそもサーバーサイドにTS選ぶメリットが無い
950デフォルトの名無しさん
2021/12/30(木) 13:42:00.99ID:XEA11GKy JavaScriptがって話ならわからんでもないが
951デフォルトの名無しさん
2021/12/30(木) 13:49:04.54ID:8IVD/YcY TS始めた時からずっと思ってたけど型が簡単に嘘を付ける言語仕様はバックエンドでは到底受け入れられんわ
フロントエンドでは気楽さと壊れやすさのトレードオフってことで受け入れるけど
フロントエンドでは気楽さと壊れやすさのトレードオフってことで受け入れるけど
952デフォルトの名無しさん
2021/12/30(木) 13:53:13.25ID:XEA11GKy じゃあC/C++なんかもダメだな
953デフォルトの名無しさん
2021/12/30(木) 14:00:36.67ID:qk2rIpzk バリデーションもできない奴がなんか言ってら
954デフォルトの名無しさん
2021/12/30(木) 14:01:03.11ID:8IVD/YcY そうだね
バックエンドでは実質Cと大差ない
ちょっとだけ楽できるけど
バックエンドでは実質Cと大差ない
ちょっとだけ楽できるけど
955デフォルトの名無しさん
2021/12/30(木) 14:10:38.20ID:XEA11GKy じゃあ逆にバックエンドで受け入れられる言語ってなんだろう?JavaとかRustくらい?
956デフォルトの名無しさん
2021/12/30(木) 14:23:51.58ID:8IVD/YcY JavaとC#だね
型安全性がしっかりしてて実績も多い言語って言えばそれぐらいじゃないか?
型安全性がしっかりしてて実績も多い言語って言えばそれぐらいじゃないか?
957デフォルトの名無しさん
2021/12/30(木) 14:42:45.86ID:XEA11GKy んー、つまり
>TS始めた時からずっと思ってたけど型が簡単に嘘を付ける言語仕様はバックエンドでは到底受け入れられんわ
JavaとC#以外の言語を触るたびに同じように思ったってことでいいのかな?
>TS始めた時からずっと思ってたけど型が簡単に嘘を付ける言語仕様はバックエンドでは到底受け入れられんわ
JavaとC#以外の言語を触るたびに同じように思ったってことでいいのかな?
958デフォルトの名無しさん
2021/12/30(木) 15:01:47.81ID:Q5xANRZc まあ、そうだね
959デフォルトの名無しさん
2021/12/30(木) 16:23:51.89ID:se0ux0qB C♯やJavaよりはTypeScriptやRust選びますわ
960デフォルトの名無しさん
2021/12/30(木) 16:31:34.51ID:tab5g/QS そしてバグが出ると
961デフォルトの名無しさん
2021/12/30(木) 16:52:28.72ID:XEA11GKy まるでTypeScriptやRustを選ぶとバグが出るかのような物言いだが
C#やJavaを選べばバグが出ないというわけでもあるない
C#やJavaを選べばバグが出ないというわけでもあるない
962デフォルトの名無しさん
2021/12/30(木) 17:38:29.90ID:tab5g/QS TypeScriptは型が簡単に嘘をつけるのでバグが出やすい
型安全性がバグ削減に貢献しているのはプログラマの常識
型安全性がバグ削減に貢献しているのはプログラマの常識
963デフォルトの名無しさん
2021/12/30(木) 17:46:55.74ID:18t9WvJQ それはあなたがバリデーション書けないからでしょ?
964デフォルトの名無しさん
2021/12/30(木) 17:56:31.58ID:XEA11GKy >>962
具体的にどういうのを言っている?まさか故意にasでキャストした場合の話じゃないだろうが
具体的にどういうのを言っている?まさか故意にasでキャストした場合の話じゃないだろうが
965デフォルトの名無しさん
2021/12/30(木) 18:04:13.25ID:cY7zFSmj その返答で書けないということが露呈したゾ
966デフォルトの名無しさん
2021/12/30(木) 19:17:21.94ID:zuTar3e4967デフォルトの名無しさん
2021/12/30(木) 19:25:44.57ID:zuTar3e4 言語仕様を変えるべきなんだろうな
typeで宣言した変数への代入は実行時に型チェック付きのマッピングにトランスレートすべき
ついでに言うとtypeで未定義の属性はマッピングするときにundefinedにすべき
これだけでTypeScriptによくある馬鹿馬鹿しいバグがかなり減るはずだ
type Foo {
x: string;
y: number; }
const foo: Foo = { y: “s” } as any
これはコンパイル時には無視していいが実行時にはエラーになるべきだし
const foo2: Foo = { x: “a”, y: 100, z: “111” }
これはzは消えるべき
typeで宣言した変数への代入は実行時に型チェック付きのマッピングにトランスレートすべき
ついでに言うとtypeで未定義の属性はマッピングするときにundefinedにすべき
これだけでTypeScriptによくある馬鹿馬鹿しいバグがかなり減るはずだ
type Foo {
x: string;
y: number; }
const foo: Foo = { y: “s” } as any
これはコンパイル時には無視していいが実行時にはエラーになるべきだし
const foo2: Foo = { x: “a”, y: 100, z: “111” }
これはzは消えるべき
968デフォルトの名無しさん
2021/12/30(木) 19:33:44.30ID:18t9WvJQ >>967
いやそれはそのコードがバカじゃん……
いやそれはそのコードがバカじゃん……
969デフォルトの名無しさん
2021/12/30(木) 19:34:37.32ID:zuTar3e4 Javaは最も優れた設計でそもそもanyみたいな言語仕様がない
Objectは定義できるが暗黙のキャストでスルッと行くなんてことはあり得ないし無理やりキャストしたって実行時に必ず例外が飛ぶ
C#はanyに近いものでdynamicというのがあるがこれも誤ったキャストには実行時に例外が飛ぶ
どちらも型が嘘をつかないように言語基盤がしっかり担保してくれるから型を信用していい
当たり前のことを当たり前にやってくれる堅実な言語だ
Objectは定義できるが暗黙のキャストでスルッと行くなんてことはあり得ないし無理やりキャストしたって実行時に必ず例外が飛ぶ
C#はanyに近いものでdynamicというのがあるがこれも誤ったキャストには実行時に例外が飛ぶ
どちらも型が嘘をつかないように言語基盤がしっかり担保してくれるから型を信用していい
当たり前のことを当たり前にやってくれる堅実な言語だ
970デフォルトの名無しさん
2021/12/30(木) 19:36:08.35ID:zuTar3e4971デフォルトの名無しさん
2021/12/30(木) 19:44:03.93ID:18t9WvJQ972デフォルトの名無しさん
2021/12/30(木) 19:48:28.03ID:pcTvcAXH Javascriptのスーパーセットという最大のセールスポイントを見てなさすぎだろ
構造的部分型も便利だしany型なんて使うときには型ガードするよね
型に関してはJavaより好きだわ
構造的部分型も便利だしany型なんて使うときには型ガードするよね
型に関してはJavaより好きだわ
973デフォルトの名無しさん
2021/12/30(木) 19:51:25.70ID:HvA/IBjD Nullableを長年放置してたり文化的にも言語的にもImmutableを軽視してきたJavaもちょっと信用できないですね
974デフォルトの名無しさん
2021/12/30(木) 19:59:03.54ID:zuTar3e4 >>971
バリデーションってのは値が正しいかどうか検証するものであって型が嘘をついているかどうか調べるためのものじゃない
どこで型が嘘をついているか確実に判断することはむずかしい
自分達の管理するコードベースの外界とのI/Oは全て疑わしい
先も述べたようにJsonのパース、ApiのIO、DBのIO、野良ライブラリのIO
疑わしい箇所が多すぎる
型が嘘をつかない言語なら外界とのI/Oの型定義が信用できる
信用できない領域がグッと一気に減る
だから型は嘘をついちゃいけないし
簡単に嘘をつける言語仕様は絶対におかしい
バリデーションってのは値が正しいかどうか検証するものであって型が嘘をついているかどうか調べるためのものじゃない
どこで型が嘘をついているか確実に判断することはむずかしい
自分達の管理するコードベースの外界とのI/Oは全て疑わしい
先も述べたようにJsonのパース、ApiのIO、DBのIO、野良ライブラリのIO
疑わしい箇所が多すぎる
型が嘘をつかない言語なら外界とのI/Oの型定義が信用できる
信用できない領域がグッと一気に減る
だから型は嘘をついちゃいけないし
簡単に嘘をつける言語仕様は絶対におかしい
975デフォルトの名無しさん
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秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 20代の3割が「テレビ見ない」現実…そして静かに広がる「究極のテレビ離れ」とは [muffin★]
