19/02/16 21:32:01.93 rUZ2ZZ3T.net
>>185
型を意識しない、というのは私には有用にみえます、ただし変数宣言は動的型言語にも必要だと思いますが、それを表立って採用している言語はありますかね…
189:デフォルトの名無しさん
19/02/16 21:54:57.88 aDxQaKE+.net
言語の人気が年々移り変わる、
ということは、
いつかtypescriptも、ほかの型付き、部分的型付き言語の人気も、移り変わる、
とは、考えないのか?
190:デフォルトの名無しさん
19/02/16 23:06:35.69 xN2b9tEZ.net
動的ウンコガイジどもに型の有用性説いても、豚に真珠だろ
ペチプァやらルビ豚やら、あいつら中卒のガチゲェジだからな
191:デフォルトの名無しさん
19/02/17 16:04:02.49 D60SxZ1Q.net
>>188
> 型の有用性
だから動的型言語にも型はあるし型の有用性を享受してんだけど…何度言っても分からない奴は分からないんだな
192:デフォルトの名無しさん
19/02/17 16:11:02.99 YF9uE98b.net
そんな誰でもわかってることで得意げになってるのが恥ずかしい
一合目で山に登ったつもりになってる感じ
みんなもっと上にいるから!
193:デフォルトの名無しさん
19/02/18 11:46:04.18 +IiOz1o3.net
動的型と静的型では型の目的が違うことを理解していないらしいな
194:デフォルトの名無しさん
19/02/18 23:46:52.94 tCwq3WHG.net
昔は動的型付け言語と静的型付け言語って対義語みたいに思ってたけど、
TypeScriptやってみたら単純な二元論じゃないって気付かされた。
195:デフォルトの名無しさん
19/02/19 21:50:14.71 UOAs3sqY.net
そう対義語じゃない、分かりやすい表現だなぁ
本当に型が無いのはアセンブリ言語で、全てが整数になっててそれをどう解釈するかは本当に人間次第だからな
196:デフォルトの名無しさん
19/02/20 19:06:49.04 v7iPz90J.net
Cのunionもそういう意味では何でもあり
197:デフォルトの名無しさん
19/02/20 19:08:18.41 hK+DOQws.net
そういうのを昔の人は「型あって型なし」と言ったのだ
198:デフォルトの名無しさん
19/02/21 14:36:31.18 BCvd3Fow.net
同じファイルの書き込み処理なんかをRubyが5行で書けて、Javaが15行とかで書いて、いかにJavaが駄目かってブログ記事がはてなブックマークとかでよくバズってたな
声のでかい人はいつでもいる
199:デフォルトの名無しさん
19/02/22 14:01:01.67 w8nQWD0s.net
るbyなら一行で描かないと負け
200:デフォルトの名無しさん
19/02/23 02:18:28.49 +i56xIDn.net
Javascriptのthisというか変数スコープが厄介でHaxeやってるけど
Typescriptはその辺の問題点引き継いでる?
201:デフォルトの名無しさん
19/02/23 03:19:51.50 R2s6jSV3.net
「thisというか変数スコープ」?
分かってないことは分かった。
お前はどの言語やっても大成しない。
202:デフォルトの名無しさん
19/02/23 08:32:08.65 DQY5g4De.net
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
203:デフォルトの名無しさん
19/02/23 10:27:04.01 apHI25Q1.net
thisや==は今ならeslint/tslint任せでほとんど問題ないね。
引数付きenumはようはUnion Typeだし、代数的データ型はTagged Union Typeかな。
パターンマッチそのものはないけどType Guardで似たようなことができる。
マクロとマルチプラットフォームはさすがにないな。
204:デフォルトの名無しさん
19/02/23 11:20:14.57 R2s6jSV3.net
haxe?ああtsに負けて滅んだ言語かw
205:デフォルトの名無しさん
19/02/23 11:24:28.53 ks3X52WF.net
弊社、ガイジが導入したhaxeが完全な負の遺産化しててうんざりするわ
死ねとまでは思わないけど、産まれてこなければよかったのに
206:デフォルトの名無しさん
19/02/23 11:27:21.05 rwRcja1T.net
thisはそもそも使う必要がない
jQueryとか昔のライブラリを使うとthisを使わざるを得なくなって混乱する
変数スコープの問題は多分変数の巻き上げの事だと思うけど、TypeScriptは変数を宣言する前にアクセスはエラーだから変数スコープの問題は無い
207:デフォルトの名無しさん
19/02/23 12:07:09.04 Y+/6FGBc.net
言語でマルチプラットフォームってどゆこと?
208:デフォルトの名無しさん
19/02/24 19:32:04.72 iK4D+UQi.net
一般にバイナリ互換のこと。
スクリプト言語はソースコード=バイナリ扱いだが。
Qtとかのライブラリはソース互換やね。
そのライブラリと標準ライブラリ使う分にはマルチプラットフォーム。
209:デフォルトの名無しさん
19/03/27 22:29:10.88 ZMj2RB3N.net
TypeScriptのリテラル型を知って目から鱗だったんだけど、元ネタってどこなのかな?
TypeScript以前に採用していた言語とかある?
210:デフォルトの名無しさん
19/03/28 08:22:20.68 XxNMz1Hs.net
URLリンク(www.infoq.com)
Flowは,少なくともこの分析を実施した1年前には,Facebookによって極めて閉鎖的な方法で進められていた言語です。
開発はまったく透過的ではなく,ロードマップも公開されていませんでした。
プロジェクトへのコントリビューションは,Facebook以外からはほとんどありませんでした。
対照的にTypeScriptは,数年前にGitHubに移動して以降はオープンソース開発を採用しています。
最新のロードマップを公開し,外部からのコントリビューションを受け入れ,全般的にコミュニティとの密接な関係を維持しています。
Flowオープンソースはほぼ放置されているので,現時点ではTypeScriptに切り替えた方がよいと思います。
このような懸念に対してFlowチームは,現在の進捗状況と2019年計画の見直しによる対処を始めている。
この概要の中で,FacebookのソフトウェアエンジニアであるAvik Chaudhuri氏は,FlowからTypeScriptへの移行について取り上げている。
最近,Facebookを起源とするオープンソースプロジェクトの多くが,TypeScriptでのリライト計画を発表しています。
Facebookでは個々のチームの独立性を強く尊重しており,各チームがロードマップを作成し,
開発中のプロダクトに対して最大限の努力を払っています。TypeScriptへの切り替えを決定したプロジェクトは,
この切り替えによって外部コントリビュータによる支援をより多く受けられるようになります。私たちはこの決定を尊重します。
211:デフォルトの名無しさん
19/03/31 08:32:04.33 9gmhFJUR.net
Announcing TypeScript 3.4
URLリンク(devblogs.microsoft.com)
212:デフォルトの名無しさん
19/04/27 22:21:18.33 DaKsj35I.net
export default Vue;
export as namespace Vue;
型定義が↑だとjsのスクリプトモード(import なし)で↓のようにvscode認識してしまって悲しい
new Vue(); // NG
new Vue.default(); // OK
export default Vue じゃなくて export = Vue なら大丈夫っぽいんだが
213:デフォルトの名無しさん
19/04/27 23:00:39.62 f59bAkpS.net
Vueなんてゴミ使ってるのが悪い
214:デフォルトの名無しさん
19/05/07 14:32:47.27 L9HTQYS7.net
質問なんですが、
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の定義の仕方ってあります?
215:デフォルトの名無しさん
19/05/10 03:36:53.56 lySswCnH.net
ついにunion distributionを理解してしまった
216:デフォルトの名無しさん
19/05/20 18:15:00.44 VITeHWYT.net
TS3のunknown型いいな。
てかany入れずに最初からこれにしとけや。
217:デフォルトの名無しさん
19/05/20 23:15:37.00 F98TWhut.net
esの上位互換である以上anyは無きゃいかんだろう。
218:デフォルトの名無しさん
19/05/22 08:13:28.81 hKcnqksZ.net
unknownからの簡単にキャストできるような値ばかりなら、確かにanyはいらんかったろうな
219:デフォルトの名無しさん
19/05/30 08:25:00.89 nLvOZq4e.net
Announcing TypeScript 3.5
URLリンク(devblogs.microsoft.com)
220:デフォルトの名無しさん
19/05/31 23:01:09.01 a9j+ivtb.net
TSも知らんフロントエンドエンジニアとか死んでほしいわ
221:デフォルトの名無しさん
19/06/01 00:45:31.22 MTpxg6Tq.net
知ってるだけでデカい顔してるフロントエンドエンジニアも死んで欲しいわ
222:デフォルトの名無しさん
19/06/01 16:36:48.07 g95cx8x2.net
ts知ってるだけででかい面できるってどんな現場だよ
223:デフォルトの名無しさん
19/06/01 19:04:47.55 +itGqD4a.net
それくらい世界はまだJSの悲しみに満ちているってことさ
救ってあげようよ、僕らで
224:デフォルトの名無しさん
19/06/01 19:52:58.38 4hNhVGGP.net
お前だれだよ
225:デフォルトの名無しさん
19/06/01 20:56:08.22 TTPVYQ4N.net
strictNullChecksをtureにしてる人いる??
ロジックではnull禁止できるけどさ、
dbからgetしたデータに混じるんだよね。
未入力状態のデータって奴。
null撲滅マスターの方は、どう解決してるの??
226:デフォルトの名無しさん
19/06/01 20:58:48.44 +itGqD4a.net
それはDBの設計が腐ってるし、unknown | null型なんだろ
ロジックが間違ってる
227:デフォルトの名無しさん
19/06/02 11:14:24.16 567ijWyR.net
そもそも、実行時にnullやundefinedが混じるという話とstrictNullChecksに直接の関係はないだろ。
その中間のどこかで困っているんだろうけど、それがわからないとなんとも。
228:デフォルトの名無しさん
19/06/02 11:38:18.31 nWi1j94r.net
nullableなfieldをgetしたらそりゃnullableでしょ
229:デフォルトの名無しさん
19/06/05 02:53:11.94 QtDGLGvu.net
Visual Studio Code でAngularの勉強をしているのですが、
TypeScriptのthisがどこのコードを参照しているのかイマイチ理解できていません。
このthisをマウスオーバーしたら参照先のコードを表示してくれる拡張機能はありませんか・・・?
現状ですとthisにマウスオーバーをすると this:this と表示されます
230:デフォルトの名無しさん
19/06/05 08:05:19.27 a1ZirxB/.net
Angular自体糞だからやめとけ
231:デフォルトの名無しさん
19/06/05 08:30:28.74 gaDZjJ4I.net
vueをやるんだ
232:デフォルトの名無しさん
19/06/07 22:14:26.23 GySnd9K9.net
みんな、質問。
TSって公式のスタイルガイド無いけど、
みんな何使ってる?
正直googleのは末尾カンマが受け付けない。。
233:デフォルトの名無しさん
19/06/07 22:21:16.75 POgNcTtv.net
prettierで終わり
受け付けないもクソもない
おまえのスタイルは全てクソで、prettierを信じろ
234:デフォルトの名無しさん
19/06/10 00:34:38.75 pNMWMTmc.net
>>231
設定は??
信じていいprettierはデフォ設定でOKなの?
235:デフォルトの名無しさん
19/06/10 07:11:15.54 s0ANUlh8.net
>>232
デフォと言いたいが
arrowParens: "always",
semi: false,
trailingComma: "es5",
のみ付けるのが多い(気がする)
236:デフォルトの名無しさん
19/06/10 07:12:37.13 s0ANUlh8.net
semi: false,
だけは本当に極稀に問題になるから、設定しなくてもいい
目障りだから俺は設定するけどね
237:デフォルトの名無しさん
19/06/13 17:34:43.34 3ecrlnnk.net
>>233, 234
ありがとう!試してみる!
238:デフォルトの名無しさん
19/06/15 19:57:13.61 60xjKXFz.net
const x = { a: 'b' };
この x の型は { a: string } になってしまうみたいだけど、 { a: 'b' } 型にする方法ってないんでしたっけ?
TypeScript 3.5です。
239:デフォルトの名無しさん
19/06/15 20:04:24.55 v9vM6Xqi.net
const x: { a:'b' } = { a: 'b' };
240:デフォルトの名無しさん
19/06/15 20:10:32.39 60xjKXFz.net
const x = { a: 'b' as 'b' }; もいけるみたいだけど冗長だなぁ。
241:デフォルトの名無しさん
19/06/15 20:14:03.78 LRsRofRH.net
as const
242:デフォルトの名無しさん
19/06/15 20:32:57.50 60xjKXFz.net
>>239
ありがとう!これだ。
243:デフォルトの名無しさん
19/06/15 22:08:42.82 B5XNjjWA.net
デフォルトで全部 as const にするオプションとかあればいいのに
244:デフォルトの名無しさん
19/06/21 19:39:39.40 NhtzQec8.net
今日の疲れやばい
245:デフォルトの名無しさん
19/06/21 19:42:13.96 NhtzQec8.net
anyを許すルールにするっつったら
「でもapiからくる値なら全て型定義できますよね?」
って言われたことにものすごい疲れた
完璧なappなんかねーんだよ!!!ってキレそうだったわ
246:デフォルトの名無しさん
19/06/21 19:42:54.97 NhtzQec8.net
一生インターフェース書いてろ!
247:デフォルトの名無しさん
19/06/22 13:59:29.40 cvRfxwEO.net
そこでunkownですよ
248:デフォルトの名無しさん
19/06/22 14:09:53.49 lgEn1aKj.net
unknown確か途中で足されたよな。最初から入れとけおもた。
249:デフォルトの名無しさん
19/06/22 15:50:14.82 cvRfxwEO.net
みんあなはallow any 派?
250:デフォルトの名無しさん
19/06/22 18:02:27.27 WCwRyrQC.net
>>247
許容派です。
再帰処理とかをまともに型付してたら、辛すぎる。。
ちなみに
const arr = []
で、never[]型になるのがしんどい。
設定でany[]型にならないでしょうか・・?
251:デフォルトの名無しさん
19/06/22 20:42:33.24 vT6NYB6v.net
明示的に型を書けばいいじゃん
252:デフォルトの名無しさん
19/06/22 22:04:34.45 1mmW7z7g.net
てかリテラルの [] が never[] になんかなる?
253:デフォルトの名無しさん
19/06/23 13:58:34.11 iaXcaTkq.net
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")
でやり過ごしてる
254:デフォルトの名無しさん
19/06/24 11:41:32.01 218UFAwP.net
この研究によるとTypeScriptは最もバグ発生率が低い言語なんだけどその理由とか体感とかありますか?
URLリンク(web.cs.ucdavis.edu)
>TypeScript -1.32 (0.40)∗∗ -2.15 (0.98)∗ -1.34 (0.41)∗∗ -0.34 (0.07)∗∗∗
255:デフォルトの名無しさん
19/06/24 11:46:37.72 eHWTfFeZ.net
コンパイラにバグが無い
コンパイル中にコードのバグは発見出来る
アルゴリズムのバグは知らんがな
256:デフォルトの名無しさん
19/06/24 21:38:49.72 RR0ut14u.net
TypeScriptで書いたプロダクトにバグが少ないのか、TypeScriptコンパイラにバグが少ないのか、どっちよ?
257:デフォルトの名無しさん
19/06/24 21:39:48.85 RR0ut14u.net
あと今土器pdfなんかで出すなよボケカス
日本語翻訳使えないだろが
258:デフォルトの名無しさん
19/06/24 21:52:09.72 RR0ut14u.net
TS >>> JS
という話なら圧倒的同意しかないのだが
URLリンク(www.reddit.com)
他の言語と比べてどうこうはわからん
あと動的型無し糞言語がゴミというのも同意
259:デフォルトの名無しさん
19/06/25 18:21:53.19 Cc6pu6kp.net
>>254
TSで書かれたソフトウェアにバグが少ない
そのPDFによれば調査対象のメジャーな10種くらいの言語の中で最も少ない
260:デフォルトの名無しさん
19/06/25 20:19:43.86 VFPzRDke.net
C#と大して変わらんのにバグが少なくなるって根拠がよく分からん
JavaScript上がりのプログラマが使うことが多いから良く訓練されているってのが考えられる根拠だなw
261:デフォルトの名無しさん
19/06/25 23:32:40.42 AQeJL9YJ.net
ユーザのリテラシが高いが後押ししてるのはありえそうだな
phpあたりは言語もユーザもガイジだからかわいそう
262:デフォルトの名無しさん
19/06/26 00:17:43.45 +9DnWsFD.net
JavaScriptは初心者が触るには最悪の言語と言っても過言ではないないから、ありとあらゆるバグを出して大変な目に遭ったプログラマがTypeScriptを使うことになると、バグも少なくなるだろうなという意味だよ
263:デフォルトの名無しさん
19/06/26 00:40:51.84 q5HP9tQR.net
つか論文?の表の見方がわからんのだが
264:デフォルトの名無しさん
19/06/26 00:41:37.75 q5HP9tQR.net
よくよく読んだら、ほんとは一番バグが多かったとかいうオチ??
265:デフォルトの名無しさん
19/06/26 00:45:17.97 f1MF/JvG.net
スレッドがないとかポインタがないとかでできないことがある分バグも減るでしょ
266:デフォルトの名無しさん
19/06/26 00:49:58.46 q5HP9tQR.net
>>263
できないことだらけにしたGoさんはどうなりましたか・・・?
267:デフォルトの名無しさん
19/06/26 09:13:51.70 qk5ECIA8.net
このスレの住人なら当然ターミナルはコレだよな!
Terminus - TypeScript製のターミナル
URLリンク(www.moongift.jp)
268:デフォルトの名無しさん
19/06/26 12:25:57.23 7Ob4FOl6.net
>>264
Web画面なんて壊れてても気にしないからコミット取り消さないし
そもそも画面実装とか�
269:Tーバに比べて問題の範囲が限定的でたいして難しくないだろ 最初から扱ってる問題が言語ごとにちがうんだ この表ってか論文で一緒にしてるのおかしい あ、型なし言語はあかんと思います
270:デフォルトの名無しさん
19/06/26 16:21:39.07 b+WM9Si2.net
確かにCとかC++は基礎的なソフトに使われるから
僅かなバグも絶対に許されないとこありそう
それ以外にポインタ使ってるからってのもあるだろうけど
271:デフォルトの名無しさん
19/06/29 10:08:56.36 /kbU3u2K.net
>>266
動画の新しいエンコーダ作るとか、プログラムじゃなくて数学のレベルを求められる仕事は置いといて、
webならフロントの方がよっぽど複雑じゃない?
バックなんて同期処理でお決まりのレールに乗ってダラダラ書いてくだけだし。
複雑でパフォーマンスが要求されるpwaとか、typescript無かったら絶対に完成する気しないわ。
カオス過ぎる
272:デフォルトの名無しさん
19/06/29 10:25:06.32 Kp+ip4R/.net
js/tsだけどダイアログとか出すときに
モードレスにした方がユーザーには使い易いのに
バグが増えそうだからモードレス禁止ってことで
全部モーダルで造らされたことがある
273:デフォルトの名無しさん
19/06/29 19:29:55.34 pedxXkW2.net
型の判定の正しい手順ってどうだっけ?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;
}
274:デフォルトの名無しさん
19/06/29 23:44:35.08 rJpz/Ysh.net
ひえっ…
typescript使う意味あるのこれ
275:デフォルトの名無しさん
19/06/30 01:10:38.25 7Llu84Qc.net
そりゃTypeScriptだって魔法じゃないんだから。
すごいのは外部から渡された得体の知れない値をこうやって動的に型判定して
それを静的な型の世界に持ち込めるところ。
276:デフォルトの名無しさん
19/06/30 01:36:24.68 y+UHg1Q8.net
ts知らないけど処理系がロード済みの型一覧を取得できないの
277:デフォルトの名無しさん
19/06/30 02:09:58.63 uFOYv7Ak.net
unknownじゃなくてanyでいいでしょ
278:デフォルトの名無しさん
19/07/01 22:30:11.88 VQESBdFl.net
>>270
この返り値、なんていう記法?
というか、なぜこんな書き方が必要なの?
279:デフォルトの名無しさん
19/07/01 23:18:57.13 yt2EFQVJ.net
user defined type guard function でググれ。
280:デフォルトの名無しさん
19/07/02 04:58:55.57 uMGeffjZ.net
>>269
jQuery, jQuery UI のダイアログを使えば?
モーダルが多いような気がする
281:デフォルトの名無しさん
19/07/03 22:40:20.89 HeNg6Q/2.net
>>276
それだけで理解した
なるサンクス
282:デフォルトの名無しさん
19/07/07 08:52:11.33 eO4QC7Eh.net
/* 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 })),
}
}
283:type ReduxDispatchProps2 = ReturnType<typeof mapDispatchToProps2>
284:デフォルトの名無しさん
19/07/07 09:34:19.15 z09Q0v8J.net
その暗黙の推論を禁止するルールなんだから普通に考えたら無いよね。
型付けが難しい場合があるのはわかるけど、eslint-disableじゃだめな理由は?
全体として入れているチェックの例外を設けるなら後からその箇所がわかるように
しておかなきゃ困ると思うが。
285:デフォルトの名無しさん
19/07/07 10:04:05.70 dCt2bUfG.net
ジャネリック
286:デフォルトの名無しさん
19/07/07 10:24:01.49 eO4QC7Eh.net
>>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 にしたくない
というお気持ち
やっぱ無理ッスかね
287:デフォルトの名無しさん
19/07/07 10:37:01.72 eO4QC7Eh.net
>>281
どう書けばできそうですか?
288:デフォルトの名無しさん
19/07/07 11:45:51.89 zsCaUS/w.net
{ allowExpressions: true }
289:デフォルトの名無しさん
19/07/07 13:32:44.90 eO4QC7Eh.net
>>284
既にこれで設定してます
---
"@typescript-eslint/explicit-function-return-type": [
"error",
{
allowExpressions: true,
allowTypedFunctionExpressions: true,
},
],
---
290:デフォルトの名無しさん
19/07/10 01:53:27.81 QsYN3Rs6.net
Nest.js使ってサーバサイドもts使ってる人いる?
291:デフォルトの名無しさん
19/07/17 21:56:07.81 c89mzXrS.net
むしろ整合性が求められるサーバーサイドでこそ活躍する
292:デフォルトの名無しさん
19/07/17 23:22:52.24 ySrAQEz0.net
TSerならdenoでない?
293:デフォルトの名無しさん
19/07/17 23:47:06.39 5ruk5Mj4.net
まだ早い
294:デフォルトの名無しさん
19/07/23 23:09:48.66 vuRfx8Ta.net
tslintが年内収束ってことなんでeslint移行を試しているが、まだ微妙に使いづらいな。
295:デフォルトの名無しさん
19/07/24 12:05:38.50 CC3juVRq.net
Svelte 試してるんだが TS にできない……
eslint-config-prettierがほぼ使用不可になるのもしんどい
296:デフォルトの名無しさん
19/07/28 15:31:08.83 o4KFBn8V.net
vs2019に入れるときはどうしたらいいですか?
色々やってて、2017には入ったけど、HelloWorldが正しく動いてくれない。
297:デフォルトの名無しさん
19/07/28 16:16:00.92 9XfU9Gs7.net
悪いことは言わんからVSCodeにしとけ
それにTypeScriptはIDEにインストールするもんじゃなく、npmでインストールするただの1ライブラリだ
298:デフォルトの名無しさん
19/07/28 19:23:20.85 o4KFBn8V.net
検討してみます。
ありがとう。
299:デフォルトの名無しさん
19/07/30 20:33:12.19 +pfbQhET.net
リテラル型からそのリテラルの値を作ることってできないんだっけか。
Record<Foo,boolean>の変数の初期値にReacord<Foo,false>の値が使えたらよかったんだが。
300:デフォルトの名無しさん
19/07/31 01:05:45.62 LQAad41F.net
型情報から実行時インスタンスの値を変更は不可能
301:デフォルトの名無しさん
19/07/31 22:29:00.76 FZL3ewwl.net
仕組み考えりゃ当たり前だよな
302:デフォルトの名無しさん
19/07/31 22:36:31.70 79+NgejT.net
tsはコンパイル後の結果に型情報は含まないというポリシーだけど、
そういう定数を埋め込むことはやろうと思えばできる話だろ。
303:デフォルトの名無しさん
19/08/27 08:04:24.39 qSEEAuKd.net
androidで使えるts用のeditorないかな
トランスパイルとかはメインの環境でやるからコーディングのための入力支援だけでも受けられるようなやつ
304:デフォルトの名無しさん
19/08/28 02:28:02.83 SJji
305:sg2m.net
306:デフォルトの名無しさん
19/08/29 08:30:46.67 jM/zWkNe.net
Announcing TypeScript 3.6
URLリンク(devblogs.microsoft.com)
307:デフォルトの名無しさん
19/09/05 23:20:27.31 VPhKtGaJ.net
tslintの"max-classes-per-file"のデフォルト値が1なんだけどこれどういう意味合いがあってこんな制限がかかってるの?
308:デフォルトの名無しさん
19/09/05 23:30:25.75 Wj2GuKre.net
Best practice is to keep each file limited to a single responsibility.
309:デフォルトの名無しさん
19/09/06 08:25:08.20 yVtePnMR.net
プロジェクトの規模が大きくなっても1ファイル1classって維持できるものなのか?
310:デフォルトの名無しさん
19/09/06 14:16:54.22 2oSh/AAo.net
tsファイルに
string型のnormalize('NFC')を
使おうとしたんだけど、エラーになる。
なんで?
311:デフォルトの名無しさん
19/09/06 19:54:40.86 XEN3PN1i.net
プロジェクトが大きくなることとひとつのファイルに書くクラスの数が増えることとが結びつかないんだが
312:デフォルトの名無しさん
19/09/10 22:41:19.05 KQIOq++N.net
URLリンク(geekly.co.jp)
>TypeScriptはクラスベースオブジェクト指向です。
こんな転職サイトのお世話にはなりたくない
313:デフォルトの名無しさん
19/09/10 22:57:35.54 bRYQFbtI.net
これはひどい
314:デフォルトの名無しさん
19/09/10 23:33:47.24 A1/RuLsT.net
バズワードに踊らされてるだけなのか、ツッコミどころてんこ盛りなのは置いておいて・・・
Geekly Media ライター
バスコ
最新の記事がXAMPPで草生えた
10年前からタイムスリップしてきたのか?
315:デフォルトの名無しさん
19/09/11 10:05:57.98 3t6F0b74.net
>>307
>TypeScriptはクラスベースオブジェクト指向です。
完全に合っているが…何が問題なんだ?
316:デフォルトの名無しさん
19/09/11 20:26:00.45 P5SVRA88.net
TypeScriptはクラスベースでJavaScriptはプロトタイプベースって対比しているのは完全におかしい
クラス構文はただの糖衣構文で実態はプロトタイプベースだし、そもそもクラス構文はES2015にあるんだからJavaScriptもクラスベースという話になってしまう
317:デフォルトの名無しさん
19/09/11 21:06:44.69 IEmfVi5w.net
JavaScriptをプロトタイプベースのオブジェクト指向言語と言うべきではない
URLリンク(blog.anatoo.jp)
318:デフォルトの名無しさん
19/09/12 02:40:31.86 hFthHt+S.net
Haskellは最終的に再代入しまくりのCに変換される(出来る)けど、Haskellは純粋な関数型言語と言われている
オブジェクト指向言語の様に書けてその通りに動けば、オブジェクト指向言語と言える
TypeScriptが言語仕様を全く変えずにWebAssemblyにコンパイルされるようになっても、TypeScriptはプロトタイプベースと言い張るのか?
319:デフォルトの名無しさん
19/09/12 08:27:51.94 ome0ZpEu.net
オブジェクト指向的な言語機能に関して言えばTypeScriptはJavaScriptと何ら変わりはないんだから
そのHaskellの例は思いっきり的外れというか牽強付会というか。
>TypeScriptが言語仕様を全く変えずにWebAssemblyにコンパイルされるようになっても、TypeScriptはプロトタイプベースと言い張るのか?
プロトタイプが動作しなくなるなら別だが、仕様をまったく変えないという前提なら何も変わらんだろ。
ところで、こんなこと言い張っていた奴なんて見当たらないが、
>TypeScriptはプロトタイプベース
もしかしてクラスベースを否定したらプロトタイプベースを主張していることにされちゃうんだろうか。
320:デフォルトの名無しさん
19/09/12 16:14:58.14 y6P0yrLb.net
TypeScriptはprototypeをいじくるような
321:コーディングは推奨してないだろ 型システムが破綻する その時点でプロトタイプとは関係無い単なるオブジェクト指向言語なんだよ 最終的にどう動いてるか何て関係無い Haskellの様にね
322:デフォルトの名無しさん
19/09/14 21:17:37.20 1MUQqrBS.net
いやなんでそんな必死にその糞ガイジ記事を擁護したがるのかわからん
バスコ本人か?
ちゃんと頭のお薬飲めよ
323:デフォルトの名無しさん
19/09/18 08:52:01.19 F+0EZiKQ.net
知らなかったが、AssemblyScriptなんてあったのか。
既存のTypeScriptのコードがそのままコンパイルできるわけじゃなくて
文法だけが共通の別言語って感じだが。
324:デフォルトの名無しさん
19/09/18 10:08:51.34 L8SHYgAR.net
Ruby と Elixir みたいなもんか
スレリンク(tech板)
325:デフォルトの名無しさん
19/09/18 17:14:10.63 reuwXmQ7.net
ES5以前はともかく、今はPrototypeを意識することは全然ないな
ずっとJavaとかPHPだった人でも違和感なく始められると思う
326:デフォルトの名無しさん
19/09/18 17:29:52.16 fmefOdth.net
でまたまにうんこが顔を出す
327:デフォルトの名無しさん
19/09/18 19:34:20.09 C/YNNC2j.net
3.7はなかなか楽しみな機能が盛りだくさん
328:デフォルトの名無しさん
19/09/18 22:35:58.20 bp3ervLV.net
asserts ええな
pipelineオペあくしろよ
329:デフォルトの名無しさん
19/09/19 10:29:52.30 Nwlz92FM.net
Google、モバイル開発環境を加速するFlutter 1.9、プログラミング言語Dart 2.5リリース
URLリンク(news.mynavi.jp)
Null安全も開発中だそうだし、そうなったら最強かもしれん
TSあやうし!
330:デフォルトの名無しさん
19/09/19 17:24:02.70 uX+yZZQn.net
ksk
331:デフォルトの名無しさん
19/09/19 22:29:49.45 XUz/FlZ3.net
>>323
すでにTSはNull安全なんですがそれは
332:デフォルトの名無しさん
19/09/19 22:33:00.75 Q6kUj/r3.net
TypeScript 3.7 Iteration Plan
URLリンク(github.com)
- Optional Chaining
- Nullish Coalescing
- Assertion Signatures
- Recursive Type References
- ECMAScript Private Fields
- Top-Level await
つよい
333:デフォルトの名無しさん
19/09/19 22:50:14.26 SwC6FU08.net
>>326
Microsoftの本気
334:デフォルトの名無しさん
19/09/19 23:08:15.80 XUz/FlZ3.net
TSあやうし! (笑)
335:デフォルトの名無しさん
19/09/29 01:47:49.36 DcYKtIGC.net
>>326
Recursive Type References
こんなん出来るのか?
再帰はanyで逃げてたわ。
336:デフォルトの名無しさん
19/10/04 15:53:59.79 JXWhYfPM.net
ktkr
URLリンク(forest.watch.impress.co.jp)
337:デフォルトの名無しさん
19/10/04 21:06:33.10 btlbHhjd.net
>>330
いや、必要なのはパッチじゃなくて、明示的なdeprecatedだろ。
MSは全ての官公庁に対して、blinkのブラウザーを強制させるべき。
ゴミ政治家じゃ無理なので、MSがやれ。
黒船代行料として10兆払っても惜しくない。
338:デフォルトの名無しさん
19/10/06 16:12:20.74 GCn9yAhL.net
Object の OR を自動判別ってできないのかな?
下のURLは、TypeScript Playgroundで書いてみたもの
規制で書き込めなかったから、お手数だが concat して開いてほしい
https://
bit.ly
/30Pw8K3
339:デフォルトの名無しさん
19/10/06 16:44:47.50 9GzCvGAT.net
そういうのは、{ type: 'Succeeded'; result: string }と{ type: 'Failed'; message: string } �
340:ンたいにして、typeで分岐させるのが普通だけど、 if ('result' in resp) {} でもいけるよ typescriptの型はただの構造でしかないことがわかれば理解できると思う
341:デフォルトの名無しさん
19/10/06 17:28:21.59 GCn9yAhL.net
>>333
うおお、できた、ありがとう、感動、感謝、完璧です
342:デフォルトの名無しさん
19/10/09 01:40:28.94 5li6ycXf.net
tsconfig.jsonでソースディレクトリの指定は
"include": [
"src/**/*"
]
と "compilerOptions":{
""rootDir": "./src",
のどっちが正しいのですか?
343:デフォルトの名無しさん
19/10/09 07:36:48.39 ldi65x/b.net
コンパイルできる方
マジレスすると上
rootDir って要らなくね?
344:デフォルトの名無しさん
19/10/26 16:09:48.89 z1scFH36.net
もうeslintに移行しても大丈夫かな?
345:デフォルトの名無しさん
19/10/26 16:20:08.49 A0XjOFSl.net
もう3ヶ月前くらいに本番でeslint移行したが、全く問題なくてビビるぞ
346:デフォルトの名無しさん
19/11/06 08:31:23.68 EkX1LXXs.net
Announcing TypeScript 3.7
URLリンク(devblogs.microsoft.com)
347:デフォルトの名無しさん
19/11/06 08:52:02.60 sPTvbp9j.net
( ゚д゚)
_(__つ/ ̄ ̄ ̄/_
\/ /
きたか…!!
( ゚д゚ ) ガタッ
.r ヾ
__l_l / ̄ ̄ ̄/_
\/ /
( ゚д゚ ) スッ
_(__つ/ ̄ ̄ ̄/_
\/ /
348:デフォルトの名無しさん
19/11/06 11:02:39.72 o3tEvZiY.net
1歩進んで2歩さがる
349:デフォルトの名無しさん
19/11/08 14:35:13.79 vk2bSkbm.net
Microsoft、組み込みデバイスをターゲットとしたTypeScriptの高速サブセット”Static TypeScript”を発表
URLリンク(www.infoq.com)
350:デフォルトの名無しさん
19/11/08 15:41:32.87 IHFsmiXW.net
神ってる
351:デフォルトの名無しさん
19/11/08 21:30:00.92 tlySiByz.net
>さらにSTSは、TypeScriptの型規則からも逸脱している。TypeScriptがクラスに構造的型付け(structural typing)を
>使用するのに対して、Static TypeScriptでは名前的型付け(nominal typing)を使用しているのだ。
TypeScriptの人気にあやかった別言語じゃね?
352:デフォルトの名無しさん
19/11/09 02:29:33.32 NblRK941.net
結局ただのC言語の亜種だろ
MSもそんな事をいちいちアピールしないといけないほど落ちぶれたか…
353:デフォルトの名無しさん
19/11/23 10:38:33.96 1aAJfoMg.net
TypeScriptはJSerへの強制型付けギプスだと思えばそこそこ優秀
いつまでもギプスつけた状態で満足するものではないのでそのうちRustなり別の静的型付けに移行する前提であれば賞賛できる
354:デフォルトの名無しさん
19/11/23 10:47:34.10 cqseOAmT.net
TypeScriptはタイプ脳への強制補助輪だと思えばそこそこ優秀
いつまでも補助輪つけた状態で満足するものではないので
そのうち生JSなり別の動的型付けに移行する前提であれば賞賛できる
355:デフォルトの名無しさん
19/11/23 11:57:55.85 cBKKqL2b.net
TypeScriptはタイプ脳への強制補助輪だと思え
ばそこそこ優秀いつまでも補助輪つけた状態で満足するものではないのでそのうち生JSなり別の動的
型付けに移行する前提であれば賞賛できる
356:デフォルトの名無しさん
19/11/23 13:06:34.59 /aIGpl4m.net
型無し糞言語は死ねだと思え
動的糞言語はいつまでも糞でそのうち糞
糞糞糞
357:デフォルトの名無しさん
19/11/30 00:23:57.91 /MHIrz97.net
すみません
今までES5.1を使って来て、これから扱い易いと言われる
TypeScriptを学習しようと思うのですが
逆にTypeScriptの方がJavaScriptより
難易度高いと言う事はありませんでしょうか。
型は値に付く物で変数はそれへの参照、
prototypeはファンクションへの参照格納用プロパティ
Objectは可塑性のある便利な何かという感覚が身についています。
358:デフォルトの名無しさん
19/11/30 05:04:50 TrAQa+kD.net
vscodeといっしょに使えば、jsより楽
型エラーは全てTSが教えてくれる
359:デフォルトの名無しさん
19/11/30 08:52:48.62 5l2Z
360:f0lZ.net
361:デフォルトの名無しさん
19/11/30 09:04:25.09 6ZWltqHp.net
TSの機能を余す事なく使おうと思うと難易度高いけど
其処を目指す必要はない
362:350
19/12/01 22:23:36.97 THamb1cl.net
ありがとうございます。
とりあえず tslint を緩めにしてやってみます。
363:デフォルトの名無しさん
19/12/02 06:56:16 mLOeT+PU.net
TS初心者ですがお勧めの書籍ありませんか?webpackとかも合わせて勉強したいです。
364:デフォルトの名無しさん
19/12/04 22:44:25.30 sxQF45hm.net
interface A {
x: string;
}
a: A;
A.xの型(string)を取り出したい場合 typeof A.x じゃダメで typeof a.x ならいけたけど、
aみたいな変数を使わずに typeof A.x 相当のことってできないんだっけ?
365:デフォルトの名無しさん
19/12/05 07:17:39 mSvldXoX.net
A['x']
366:デフォルトの名無しさん
19/12/05 08:56:27.95 pFxixMvG.net
なるほど。ブラケット記法って最近とんと使わなくなったけど、こんなところに使い道残ってたんだ。
367:デフォルトの名無しさん
19/12/21 15:23:23.21 BSqycIZI.net
実践TypeScript - BFFとNext.js&Nuxt.jsの型定義、吉井 健文、2019/6/26
今まで、TS の本は、あまり無かったので買ってみた
入門者用の文法の説明が、130ページしかない。
残りの190ページが、各フレームワークへの対応
本屋で、他の本を見たら、
掌田津耶乃は、Node.js, Vue.js, React, Angular の本を出してるw
山田祥寛も、Vue.jsの本を出した
368:デフォルトの名無しさん
19/12/21 15:40:03.75 BpSzdr8P.net
vueは根本から型が腐ってるから使う必要なし
369:デフォルトの名無しさん
19/12/21 19:32:06.97 MnINNRtE.net
やっぱ React か
370:デフォルトの名無しさん
19/12/21 22:14:02.68 K0kobvcw.net
日本人は馬鹿だからしょうがない。
世界的にはreactなのに、世界と同じものでは戦えないからなのか、日本ではvueを使おうとする
371:デフォルトの名無しさん
19/12/24 13:31:33.33 WgZ9RMXM.net
記述がスゲー長くなって見づらい
これって劣化javaみたいな記述にならない?
jsの良さが完全に死亡してる気が…
372:359
19/12/24 13:53:39.03 3XzgnZW7.net
実践TypeScript を読んでるけど、TS の細かい挙動の怪しい所が多いから、
その例外的なルールの数を覚えるのが大変。
つまり、ハマる箇所を避けるのが大変
TS を学ぶと、Haxe の偉大さが分かる!
JavaScript のおかしい部分を修正しているから、かなりやりやすい
373:デフォルトの名無しさん
19/12/24 21:47:34.41 j2uQerkx.net
JSに良さなんてあったのか!?びっくりドンキー!
374:デフォルトの名無しさん
20/01/04 19:44:33.72 pllwqfHK.net
3.7でECMA private field 使えないんだな。ガチのprivateはお預けかぁ
375:デフォルトの名無しさん
20/01/04 19:55:56.50 Gwa4LI2s.net
ECMA private fieldの必要性、全く感じないわ
376:デフォルトの名無しさん
20/01/16 00:04:23 YIQKI70M.net
ts拡張子のts動画との棲み分けってうまい方法あるかな?
377:デフォルトの名無しさん
20/01/17 22:59:25 c8jQBH00.net
tsxにする
378:デフォルトの名無しさん
20/01/21 10:46:46 YewYG19G.net
ts-jestはテストのたびに*.test.tsをTypescriptからJavaScriptにコンパイルしてテストを実行しているのですか?
テストコードが変わらなくても、内部的にコンパイルしてるの?
それとも、tscコマンドでテストコードもコンパイルしてjsファイルに変換したら、それを利用してるの?
379:デフォルトの名無しさん
20/01/24 09:42:02.04 apHhsOxs.net
プロパティでyield のやりかたわからん。
get hoge : Generator<number,void,boolean> {
return (function* (){ yield 1; yield 2; yield 3; })();
}
とかでええの?
なんか get* hoge も *get hoge も get *hoge も怒られる。
380:デフォルトの名無しさん
20/01/24 22:27:44.69 gpzJLuFb.net
そもそも getter にジェネレータ記法はない
381:デフォルトの名無しさん
20/01/24 23:21:56 pw14qEqb.net
getterでそんな複雑なことをするんじゃあない・・・
382:デフォルトの名無しさん
20/02/24 18:47:37 Av6u/PEd.net
<Ts extends Array>(...args: Ts)=>
でTsの全ての型の交差型を返したいんだけど可能?
383:デフォルトの名無しさん
20/02/24 23:10:15 dJSyQnEN.net
Typescript: Retrieve element type information from array type - Stack Overflow
URLリンク(stackoverflow.com)
Creating types from values in array ・ Issue #28046 ・ microsoft/TypeScript
URLリンク(github.com)
keyof for arrays ・ Issue #20965 ・ microsoft/TypeScript
URLリンク(github.com)
この辺どうよ
できたら教えて
384:デフォルトの名無しさん
20/03/02 20:34:14 Vt4u2rjY.net
締め付けはガチガチなのにガバガバな構文
トランスパイルのせいで起動は遅いし設定項目やハマりポイントはクソ増える
選択肢のないフロントはともかく、言語を選び放題なサーバーでts入れてまでjsを使う意味ってなに?
385:デフォルトの名無しさん
20/03/04 19:31:12 Xkhzo69W.net
>>376
キツマンなのに誰とでも寝るみたいなん感じか
386:デフォルトの名無しさん
20/03/05 00:10:09.52 aV1N9imN.net
型無し言語というジャンルで見ると、一番マシ
387:デフォルトの名無しさん
20/03/07 19:41:25.48 Gq72B5Zp.net
URLリンク(github.com) を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()ってメソッド?
388:デフォルトの名無しさん
20/03/07 20:06:50.29 74qnesAz.net
メソッドの定義以外の何に見えるのか
389:デフォルトの名無しさん
20/03/07 21:33:39.02 po15mmZE.net
そもそも JavaScript に with 文なんて・・・あるのかよ何だこの邪悪な臭いがプンプンするやべえやつは
390:デフォルトの名無しさん
20/03/08 10:00:55 Dz/wpeTc.net
>>203
御社は今どういう状況になってる?
391:デフォルトの名無しさん
20/03/08 13:25:25 /+j1E1ja.net
>>382
何も変わっとらんよ
機能拡張もできないから、現状維持という名の放置
392:デフォルトの名無しさん
20/03/08 13:39:52 Dz/wpeTc.net
サンクス
393:デフォルトの名無しさん
20/04/14 00:16:42 Rf+yV41A.net
違い何?
interface Dictionary<T> { [key: string]: T; }
type Dictionary<T> = { [key: string]: T; };
394:デフォルトの名無しさん
20/04/14 00:52:31.86 1s8555QT.net
そのコードに限っては、違�
395:「ないかもな 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) ``` だから、ライブラリの定義ではたまに使われる プロダクトコードで使ってる奴は物知らないか、設計力のないやつ
396:デフォルトの名無しさん
20/04/14 08:03:12 KwYjFqSp.net
>物知らないか、設計力のないやつ
どうして?
397:デフォルトの名無しさん
20/04/14 08:24:49.93 NW9baKp2.net
>>386
ケツにIとかTを付けるのは設計力の無いやつ
398:デフォルトの名無しさん
20/04/14 08:34:25 1s8555QT.net
>>388
ただのサンプルコードにそんなこと言われてもwww
>>387
以下理由
・昔デフォルトONだったprefer-interfaceを引きずっている
・自分で管理できるコードなのに、interfaceで拡張する余地を残さねばならないのはおかしい
399:デフォルトの名無しさん
20/04/14 08:54:36 NW9baKp2.net
>>389
> ・自分で管理できるコードなのに、interfaceで拡張する余地を残さねばならないのはおかしい
オブジェクト指向を全否定かよw
400:デフォルトの名無しさん
20/04/14 10:13:18 1s8555QT.net
>>390
たぶん君は、Java の implements に使える interface のことを言ってるのだと思うが、
type でも implements 相当の宣言ができるので、
TS の interface は src 変更が容易でないが、ライブラリの性質上拡張の余地が必要なケースでしか有効でない
「同じ名前の型なのに、実は後から src のどこかで拡張されてました」なんて嫌だろう?
どこの JavaScript だよ
401:デフォルトの名無しさん
20/04/14 18:14:19 Rf+yV41A.net
>>386
なるほど
ありがと
402:デフォルトの名無しさん
20/04/26 04:53:02 IAt9cGuZ.net
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 と推論してほしい
403:デフォルトの名無しさん
20/04/26 05:47:15.51 IAt9cGuZ.net
ごめん、自己解決した
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引数の型で推論してくれるようになったし、
指定すればその関数の戻り値の型で推論してくれるようになった
404:デフォルトの名無しさん
20/05/13 20:55:34 Z2ECG7mm.net
Announcing TypeScript 3.9
URLリンク(devblogs.microsoft.com)
405:デフォルトの名無しさん
20/05/13 22:51:12 8OQL2q6a.net
>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 が遅いんだ
両方使ったら耐え難いレベルで重くて辛かった
406:デフォルトの名無しさん
20/05/17 20:28:24.81 eDtMluXf.net
初学者が今からTypeScriptやるメリットってある?
普段使ってるC#のBlazorが育つまで我慢してそれまではJS使えばいいかなーという気がしてるんだけど
407:デフォルトの名無しさん
20/05/17 21:27:13.06 07c/uCSO.net
・BlazorがTSと同等レベルまで言語・市場が育つことはありえない
・JSに毛の生えた程度の文法でC#と同等以上のタイプセーフの恩恵を受けられる
と思うよ
正直TS始めて
408:からは、JS(特に他人が書いたやつ)は2度と触りたくなくなった
409:デフォルトの名無しさん
20/05/17 22:05:58.39 ShD9HsIi.net
仕方なく js 書いてる時も jsdoc で型を付けまくってる
もうあの頃には戻れない・・・
410:デフォルトの名無しさん
20/05/17 22:08:17.75 ilBeXKNK.net
毛が生えたと言われてもジェネリクス周りとか仕様がけっこう大きい(大きいだけでそんなに難しくは無いけど)。あと歴史的に同じような機能のものが複数あるのはやや辛い。
411:デフォルトの名無しさん
20/05/17 22:10:49 ilBeXKNK.net
素のjsは確かに触りたくなくなったな~
412:デフォルトの名無しさん
20/05/17 22:12:40 07c/uCSO.net
>>400
まぁそうだけど、最初はbetter js程度に :string みたいな単純な型書くだけでいいと思うよ
それだけで劇的に違ってくる
413:デフォルトの名無しさん
20/05/18 06:26:49.70 IgsFvSEI.net
>>402
確かにそうだわ
414:デフォルトの名無しさん
20/05/18 09:34:50.89 /q4v9RIOI
TypeScriptのnamespaceってJavaのpackageやPHPのnamespaceとは違うものでしょうか?
型定義ファイルでいくつかのinterfaceをnamespaceでくくり、
別ファイルで「import PostRequest = SlackApp.PostRequest」で参照したら
TS2702: 'SlackApp' only refers to a type, but is being used as a namespace here.
と言われてしまいました。
括らないで「import { PostRequest } from '../types/PostRequest'」で参照したらエラーにはならなかったです。
複数の定義をまとめる目的で使うものではないのでしょうか?
それとも書き方を間違えてますか?
415:404
20/05/18 09:35:28.60 /q4v9RIOI
claspを使ってGoogle Apps ScriptをTtypeScriptで書いていて、SlackのSlash Commandのリクエストを定義したいです。
// src/doPost.ts
import PostRequest = SlackApp.PostRequest
function doPost(request: PostRequest) {
SlackApp.postMessage(JSON.stringify(request))
}
// types/SlackApp.d.ts
declare namespace SlackApp {
interface PostRequest {
parameter: SlashCommandParameter,
/* 省略 */
}
interface SlashCommandParameter {
/* 省略 */
}
interface SlashCommandParameters {
/* 省略 */
}
}
416:デフォルトの名無しさん
20/05/19 12:17:36.04 m7E0nRpi.net
クラス使えるだけで嬉しかった。prototypeとか二度と触りたくない。
417:デフォルトの名無しさん
20/05/19 19:57:31 JYXLTsSv.net
せっかくTypeScript使うのになんでクラス
418:デフォルトの名無しさん
20/05/19 20:00:38 lV40zBP6.net
jsonに型が付くのマジサイコーって気分になる
419:デフォルトの名無しさん
20/05/20 18:25:07.86 uCxRgACC.net
@types/node を v14:x に上げたら fs.write* 周りでエラーがいっぱい出た
以前の型定義ファイルでは第2引数が any だったために見逃されてたのね
420:デフォルトの名無しさん
20/05/20 19:13:29 kUjfC17v.net
vscoe+deno
d.tsを用意してjsをimportたがインテリセンスに型情報がでない
421:デフォルトの名無しさん
20/05/20 19:43:48 q4rNYEAk.net
アーリーアダプタすぎっしょ
422:デフォルトの名無しさん
20/05/28 04:29:10 YaDoyLzB.net
質問させてください
初歩的なものかと思いますがよろしくおねがいします
以下の様に 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;
などの型ア�
423:Tーション?キャスト?で解決するように書いている記事が多くヒットするように感じます。 質問としましては、 ・HTMLElementではなくHTMLInputElement等の具体的な型で要素を取得する方法はありますか? ・具体的な型で取得できない場合、それがHTMLInputElementであると判定する方法はどのようなものがありますか? 以上、長くなりましたがご教授頂けると嬉しいです。
424:デフォルトの名無しさん
20/05/28 05:30:32 uIAU+1VL.net
>getElementById
英語読め
425:デフォルトの名無しさん
20/05/28 07:36:15.22 XtQwhE1K.net
>>412
URLリンク(bi)□t.ly/2zBJQbZ
こんな感じでいかがでございましょうか?
getElementById の取得結果は、HTMLElement を継承した何かであることは確実だが
より具体的な型であることは if 文などで判定しないとわからないので
(読みやすい)ワンライナーするのは難しいかな
426:デフォルトの名無しさん
20/05/28 07:37:06.32 XtQwhE1K.net
リンク先は typescript playground
長すぎて貼れなかった
url中の□を取っ払ってアクセスしてほしい
こっちも短縮url規制で貼れなかった
427:デフォルトの名無しさん
20/05/28 08:20:23 YaDoyLzB.net
>>414,415
なるほど、constructorと型の名称は一致するので比較に使えるのですね。
3パターンもありがとうございます。参考にさせて頂きます。
428:デフォルトの名無しさん
20/06/03 19:01:52.32 +riA6q4Z.net
vscodeのタスクでビルドしたいのですが、上手くいきません。
最初から入っていた"tsc: ビルド - tsconfig.json"という設定を使ってタスクを実行すると、
> Executing task: tsc -p (省略)\tsconfig.json <
パラメーターの書式が違います - -Command
と出てビルドが終了しません。
コンソールに同じコマンドをコピペするとちゃんとjsファイルが作成されます。
ググってみたのですが、そもそもtscで「パラメーターの書式が違います」というエラーが出るという記事すらありませんでした・・・
どうすればいいでしょうか。
429:デフォルトの名無しさん
20/06/03 19:16:49.18 W7xz+V5+.net
普通にnpmとnpm scriptの一部に組み込んだ方がいいと思う
vscodeのタスクとか使ったことないし、必要性も感じたことないな
430:デフォルトの名無しさん
20/06/04 22:32:22.64 c/bZjxGo.net
tscがどこにインストールされてるか、とか関係ありそう
431:デフォルトの名無しさん
20/06/04 23:13:01.10 hC0MsN2x.net
npx tsc --init
で、tsconfig.json が出来る
package.json に、こう書いておいて、
"script": {
"build": tsc
},
npm run build
で、コンパイルする
432:デフォルトの名無しさん
20/06/06 19:11:34 FUHWS7EH.net
>>418
そうすることにします
>>419
AppData\Roaming\npm
にありました。
>>420
元々コンソール上からはどのコマンドも実行できるのですが、
vscodeのタスクから使うとエラーが出てしまうんです。
色々テストしていたところ、
単なるシェルコマンド echo unko ですらエラーが出るのでvscode固有の問題っぽいです
433:デフォルトの名無しさん
20/06/06 20:04:01.16 vddsi0s3.net
>>417
パラメータの書式が違うってのはPowerShellでよく見るエラーだけど、VSCodeってPowerShell叩いてるんだっけ?
VSCode固有の問題と決めつけるんじゃなくてもう少し調査してみたら?
434:デフォルトの名無しさん
20/06/07 10:34:46 s05OkEKn.net
解決しました
日本語版のWindowsではpowershell.exeがShiftJISで読まれるので、
合わせてvscode上のPowerShellの文字コードをShiftJISに変えていたのが原因でした。
元のUTF-8に戻したら問題なく実行できました。
tscをフルパスで実行したらパスの途
435:中にスペースが発生し、 PowerShellスクリプトのデバッグ時によく見た文字化けだったので気づけました。 >>422 ご名答です PowerShellが叩かれていて、エラーもPowerShellからでしたw
436:デフォルトの名無しさん
20/06/11 18:33:48 Jv4rHxRX.net
Nodeでサーバーを立てているような場合、
ユーザーが入力した値を格納する変数の型は一旦unknownとしておいた方が良いのでしょうか?
例えば以下の様な場合です。
const func1 = (userInput: unknown) => {...};
const func2 = (userInput: string) => {...};
バリデーション等を行って問題が無ければ、
改めて型宣言した変数に代入し直すような方法が一般的ですか?
437:デフォルトの名無しさん
20/06/13 14:38:30 fZdtN3m2.net
ついにDartがnull安全になったそうな
URLリンク(forest.watch.impress.co.jp)
webからiOSまで1言語で書ける(ちゃんと動くとは言っていない)
438:デフォルトの名無しさん
20/06/13 16:20:45.29 cnsVZnHy.net
今TypeScript+Reactを勉強しているのですけど、テーブルのコンポーネントで使いやすいものって無いですか?
テーブルのヘッダはそのままで縦は内容だけスクロールして横はテーブルも一緒にスクロールするみたいなものが良いです
439:デフォルトの名無しさん
20/06/13 21:17:17.22 qaq6yJI2.net
jexcel
react-table
react-tableは、初心者なら v6 おすすめ
理由は、標準でUIが付いてるから簡単にそれっぽいものができる
ドキュメント調べれば割と多くの挙動に対応できるはず
代わりに、UIのカスタマイズがつらい
「あそこのcssを弄りたいけど、どうやって指定すればいいかわからん」
「!importantじゃないと上書きできない」
的なことになりがち
あと、@types を v6 のをインストールするよう注意すること
UIごりごりにカスタマイズしたいなら最新の v7
headless と謳われてるように、UIが一切ないから全て自分の思い通り
代わりに、学習コストが高い
あと @types 書いたやつがバカなのか、Genericsの対応が酷くて
キャストがたくさん必要でうんざりする
440:424
20/06/14 00:14:28 uuDX9j1b.net
>>427
有難うございます、react-tableを調べてみます。
material-uiがElectronで
TypeError: Cannot use 'in' operator to search for 'ontouchstart' in null
とか出て動かなくて困っていました。
ボタン一個しか指定していないサンプルを写してこれです。
441:デフォルトの名無しさん
20/06/14 00:51:17.06 864/oVLm.net
>>428
URLリンク(stackoverflow.com)
速攻それっぽいの出てきたが、ちゃんとググったかねキミィ?
442:デフォルトの名無しさん
20/06/14 12:09:11.89 qCi3/fDK.net
これっぽいの見たことあるけど、他にも気になる事があって見落としてました
<div>に書いてあるの要るのかな?
今試せる環境でないので後日に
443:デフォルトの名無しさん
20/06/25 08:05:47.95 Nd1uEPT+.net
TypeScriptってsetIntervalとかsetTimeout,
async/await, Promiseとか使えるんですか?
444:デフォルトの名無しさん
20/06/25 08:55:25.54 3QV8gPE9.net
逆に使えない意味がわからない
445:デフォルトの名無しさん
20/06/25 09:53:31.94 2LahzjFh.net
Ruby on Rails では、React も多いけど、
TypeScript を使う香具師は、いるのかな?
446:デフォルトの名無しさん
20/06/25 10:01:29.46 PKyG+WtC.net
ルビカスは宗教
447:上の理由からTypeScriptなは絶対に使えないんで消えて フロントエンドの方が厳格な言語で書かれてるとか頭おかしいからなw
448:デフォルトの名無しさん
20/06/25 10:37:01 V5BYtNqQ.net
かわいそうに。
449:デフォルトの名無しさん
20/06/25 11:14:26.11 2XRewe5U.net
CoffeeScriptとは何だったのかω
450:デフォルトの名無しさん
20/06/25 11:57:37.69 2LahzjFh.net
Ruby on Rails 6 から、Node.js, webpack が標準になったから、
もう、Coffee Script には依存していない
451:デフォルトの名無しさん
20/06/25 14:16:09 3QV8gPE9.net
だからどうしたRubyガイジ
さっさと消えろ
452:デフォルトの名無しさん
20/06/25 14:49:25.12 V5BYtNqQ.net
webpack使えるなら、普通にもうRoRでhtml作る必要ないのでは
453:デフォルトの名無しさん
20/06/25 14:51:02.50 V5BYtNqQ.net
ほんまやな
PHPもRubyも、型無し糞言語は滅びるべきや
json以外を喋る邪悪なWebサーバーは1台残らず破壊しろ
454:デフォルトの名無しさん
20/06/25 14:52:55.59 3edAgV/k.net
この場違いRuby妖怪はアンカ飛ばさんでも一応レス見てる素振りを見せるのがちょっとしたホラー
455:デフォルトの名無しさん
20/06/26 03:43:22.98 4Xp41V6m.net
GUI は、React, Bootstrap で良いけど、
サーバ側が、Node.js じゃ辛い
Rails, Sinatra などの、Ruby の方が分かりやすい
Rubyの欠点は、web アプリだけしか作れないこと!
スマホ用アプリも必要なら、Electron, React Native + Expo
それか、Unity
456:デフォルトの名無しさん
20/06/26 07:42:47 Sd6G194T.net
Rubyの欠点はお前みたいなキチガイがスレチのクソ宣伝で評価を下げてることだよ
457:デフォルトの名無しさん
20/06/26 14:54:51.55 6IXnju0o.net
URLリンク(twitter.com)
多言語disをついやってしまう癖を止めて欲しい。
最後に参加したTokyuRubyKaigiで「Javaやってる人手を挙げてはーい♪今挙げた人はすぐに帰ってくださーい♪」って言ったのは忘れたくても忘れられない。
(deleted an unsolicited ad)
458:デフォルトの名無しさん
20/06/26 16:51:07 Z5HJiD+l.net
型無し糞言語やってる人は帰るだけじゃ済まされない
死んでください
459:デフォルトの名無しさん
20/06/26 18:00:16.15 9etEQyfp.net
俺も東横線代表として参加してくるわ
460:デフォルトの名無しさん
20/06/26 20:32:19.16 aHXqCiQW.net
>型無し糞言語
今どきの言語で何があったっけ?
461:デフォルトの名無しさん
20/06/26 22:12:45.13 TcIyIoqu.net
>>444
10年以上前に同じようなJava disやってたスピーカーがいたが
別のスピーカー/コミッター達にあれはやめたほうがいいって厳しく批判されてたけどな
その時代の話なのかな
462:デフォルトの名無しさん
20/06/27 01:29:27.09 9wE9An+g.net
ありますで喩えると
Java山中さん
*by笹井さん
463:デフォルトの名無しさん
20/07/01 14:29:27.01 OAvcKBIQ.net
Talking TypeScript with the engineer who leads the team
URLリンク(stackoverflow.blog)
464:デフォルトの名無しさん
20/07/15 11:01:56.72 IqfNcqeZ.net
TypeScript で、無名配列のJSON ファイルは、import できない
[
["a", 10],
["b", 20]
]
名前を付ければ、import できる。
import { xyz } from "./a.json";
{"xyz": [
["a", 10],
["b", 20]
]
}
465:デフォルトの名無しさん
20/07/15 12:14:33.71 cL9c5hZ8.net
typescriptに限らず
そういう実装結構ある
全体は{}を仮定してるの
466:デフォルトの名無しさん
20/07/15 13:02:18.34 pL8+4mwq.net
jsonってトップレベルはObject
467:必須だと思ってた そういう仕様あるのかな
468:デフォルトの名無しさん
20/07/15 15:59:04.81 T1dYtDa5.net
Type Script 使ってみて思ったけど
最初から ES がこの仕様だったら本当に助かってた
そして今の課題は既にある ES のライブラリ摂りこむのが面倒
なんとかならんのか??っていう
469:デフォルトの名無しさん
20/07/15 16:48:00.29 cL9c5hZ8.net
C# 使ってみて思ったけど
最初から C がこの仕様だったら本当に助かってた
そして今の課題は既にある C のライブラリ摂りこむのが面倒
なんとかならんのか??っていう
470:デフォルトの名無しさん
20/07/15 16:58:29.54 pL8+4mwq.net
割とマジで攻守共にTypeScriptが最強だわ
TSに欠けてるのは、あとはパターンマッチくらいだろう
TypeScriptがネイティブバイナリ吐くようになればいい
471:デフォルトの名無しさん
20/07/15 19:14:22.28 Iul+D8/c.net
>>451
そもそもimportはjsonを読むためにあるわけじゃないから読めなくても不思議はないが、
ts3.9.6で試してみたら普通に読めるんだが?
>>453
rfc読めばわかるがトップレベルだけ特別扱いする必要ないしね。
472:449
20/07/15 19:20:18.72 IqfNcqeZ.net
./a.json に以下だけを書いて、どういうimport 文を書いたの?
[
["a", 10],
["b", 20]
]
473:デフォルトの名無しさん
20/07/15 20:06:40.11 Iul+D8/c.net
ふつうに
import j from './a.json';
"module"は"commonjs"
474:デフォルトの名無しさん
20/07/15 20:24:52.52 guZu56HE.net
esModuleInterop か allowSyntheticDefaultImports は true になってる?
false や未設定なら、 `import * as j from './a.json';` でインポートする必要がある
475:デフォルトの名無しさん
20/07/15 20:31:01.05 Iul+D8/c.net
ああすまん、"resolveJsonMdule": true してた。
つまりmoduleじゃないjsonをロードしたいならこれが必要ってことね。
476:449
20/07/15 21:20:34.32 IqfNcqeZ.net
あれ? 普通に、これで、import できた!
漏れの勘違いだったみたい
import j from "./a.json";
漏れの設定は、
"module": "es2015",
"esModuleInterop": true,
"resolveJsonModule": true,
477:デフォルトの名無しさん
20/07/16 13:16:30 Bj5j4Y6i.net
こういうのはだめなんだっけ
[
["a", 10],
["b", 20],
]
478:デフォルトの名無しさん
20/07/16 15:09:37.34 J/CG/YnB.net
TypeScript の開発中は、
Webpack のオフライン機能、workbox を使わないから、
package.json の、"workbox-webpack-plugin": "^5.1.3" を、
コメントアウトしようとしたが、形式エラーになって出来ない
削除はできるけど、コメントアウトで残しておきたい
479:デフォルトの名無しさん
20/07/16 15:10:33.56 L+apgnKF.net
gitを使いましょうよ・・・
480:デフォルトの名無しさん
20/07/16 15:13:26 J/CG/YnB.net
>>463
JSON ファイルでは出来ない
よく知らないけど、新しめの、JS/TS ファイルでは出来るかも
481:デフォルトの名無しさん
20/07/16 18:14:40 QwF0ci9g.net
よく知らないなら黙ってろrubyガイジ
482:デフォルトの名無しさん
20/07/16 18:31:21.38 L+apgnKF.net
>>463
ケツカンマをファックできるのはECMAScript 5以上
JSONはファックできない
483:デフォルトの名無しさん
20/07/22 02:36:42.07 2/9nnKBr.net
クライアント向けの開発サーバーが付いている、Parcel を使っている香具師いる?
Postman を使っている香具師いる?
これは、REST クライアントかな?
漏れは、VSCode の拡張機能の、REST Client を使っているけど
他には、TypeScript で、Express サーバーを実行する、ts-node-dev は?
484:デフォルトの名無しさん
20/08/01 03:44:15.17 BmlbAE5y.net
pacage.jsonのバージョンを取得したくて
src/index.tsで
import {version} from '../package.json'
を思いついたのですが、これだとコンパイルでdistに排出されるときにpackage.jsonも排出されてしまいます
これを解決する(依存関係をdistに持ってくるのではなくが./package.jsonを常に読むようにしたい)方法はあるのでしょうか?
485:デフォルトの名無しさん
20/08/01 07:24:44.96 WBys/b
486:G4.net
487:デフォルトの名無しさん
20/08/01 19:08:50.40 BmlbAE5y.net
>>471
自分的にはdistに排出される先にもう一つpackage.jsonが作られるのが気持ち悪いと感じたのですがそうでもないんですかね?
488:デフォルトの名無しさん
20/08/01 21:11:01.65 PGLLO5uD.net
たしかにキモい
489:デフォルトの名無しさん
20/08/01 21:32:06.85 WBys/bG4.net
普通にgitignoreしてるだろうしdistにpackage.jsonがあっても特にデメリットないし
distに何が吐かれててもええんちゃう?
490:デフォルトの名無しさん
20/08/03 07:34:16.45 qdvto+rV.net
>>470
process.env.npm_package_version
じゃダメなの?
491:デフォルトの名無しさん
20/08/03 09:46:39.86 l1ICYS01.net
>>475
横からだけどサンキュー
こんなことできるんだね、勉強になった
package.jsonの各種要素を読み込みたい! - DEV
URLリンク(dev.to)
492:デフォルトの名無しさん
20/08/03 10:52:32.11 qdvto+rV.net
>>476
公式にもこんなところにしれっと書かれてる
URLリンク(docs.npmjs.com)
package.jsonの各フィールドの説明してるページには書いてないんだなぁ…
493:デフォルトの名無しさん
20/08/05 08:07:16.62 uWbem7nq.net
Announcing the new TypeScript Website
URLリンク(devblogs.microsoft.com)
494:デフォルトの名無しさん
20/08/21 08:26:54.83 D9+iHL3k.net
Announcing TypeScript 4.0
URLリンク(devblogs.microsoft.com)
495:デフォルトの名無しさん
20/08/21 09:31:14 pu35Qu/1.net
もう4.0の時代なのか・・・
それなのにおまいらのプロダクトときたら・・・
496:デフォルトの名無しさん
20/08/21 11:12:40 7l2hhkMF.net
現場猫『ヨシッ!』
497:デフォルトの名無しさん
20/08/21 11:15:43 6zccVHNz.net
監督猫『ヨシッ!』
498:デフォルトの名無しさん
20/08/21 13:28:51.80 pu35Qu/1.net
一次請猫『ヨシッ!』
499:デフォルトの名無しさん
20/09/14 09:29:26.60 CfIbX1f0.net
ここで聞いて良いのかわからないけどimportの拡張子(.js)を省略して、js変換時に拡張子をつけることってできないかな?
開発中はtsc使って開発者終了時だけwebpack使いたいのだけども
500:デフォルトの名無しさん
20/09/14 09:33:13.37 /HJ+wc6C.net
そのようにwebpack設定するだけでは
cssやjpgとかの非プログラムファイルにしかimport文に拡張子書いたことないわ
501:デフォルトの名無しさん
20/09/14 21:55:40.83 CfIbX1f0.net
webpackの方でなんとかするしかないか。
ありがと
502:デフォルトの名無しさん
20/09/15 00:09:40.68 g6ghhz4T.net
typescript のポリシーからすると将来的にも対応される可能性は低い
503:デフォルトの名無しさん
20/09/28 14:36:37.18 NZq3hOP+.net
マイクロソフト発のオープンソース言語「TypeScript」、生みの親が語る開発当初や背景
URLリンク(japan.zdnet.com)
504:デフォルトの名無しさん
20/09/28 19:49:45.93 kE1qWQhp.net
TypeScriptのまえにWebAssemblyが登場していたらみなそっちに飛び付いたのだろうか。
505:デフォルトの名無しさん
20/09/28 22:54:37.39 t2I6kwxp.net
何だかんだ言ってみんなJavaScriptが大好きだからな
それにブラウザに実装されているAPIはJavaScriptから使うこと前提だからWebAssembly使っても余計な苦労するだけだ
ゲームには向いてるだろうけど
506:デフォルトの名無しさん
20/09/28 22:56:43.96 L69JRisQ.net
既存のJS資産を流用できたのも強みの1つだったと思うから、やっぱTSの戦略勝ちじゃねえの
つかWASMって一時期騒がれてたけど今どうなったんだ?
507:デフォルトの名無しさん
20/09/28 23:49:19.24 XJOyCoAG.net
>>491
Unityが実用?になってるぐらい。
なにしろ、仕様も含めて
今後どうなるかわからん状況では?
508:デフォルトの名無しさん
20/09/29 09:41:15.62 tKw94fLv.net
FlutterがDartじゃなくてTSだったら良かったのに
509:デフォルトの名無しさん
20/09/29 11:21:16.26 P1Q7o4iq.net
ほんとそれな
あんな劣化Javaみたいな言語ありがたがってる連中の頭が理解できない
510:デフォルトの名無しさん
20/09/29 12:10:42.86 aaxcyAZi.net
大して機能違わないじゃん。
何が足りないと思ってるの?
511:デフォルトの名無しさん
20/09/29 13:15:04.46 pjrsoCYz.net
知能
努力
向上心
512:デフォルトの名無しさん
20/09/29 13:35:36.65 P5R6/7cr.net
そうだな、JavaとJavaScriptも一緒だしな
513:デフォルトの名無しさん
20/09/29 14:11:13.25 Y54HkFIW.net
>>495
NULL安全とか?
514:デフォルトの名無しさん
20/09/29 15:46:22.91 aaxcyAZi.net
>>498
あるよ
>>496
ないよ
515:デフォルトの名無しさん
20/09/29 18:45:22.24 fbgKh1ZX.net
マイクロソフト発のオープンソース言語「TypeScript」、生みの親が語る開発当初や背景
URLリンク(japan.zdnet.com)
516:デフォルトの名無しさん
20/09/30 13:09:08.11 pBMNn9J9.net
>> Microsoftが2018年に75億ドル(約8000億円)を投じて買収したGitHub
知らんかった
オンライン版のvscodeがGitHubにあるのはそういうわけか
517:デフォルトの名無しさん
20/10/02 00:47:34.12 c4z818i5.net
ピチャイのマイクロソフトは良いマイクロソフト。
518:デフォルトの名無しさん
20/10/10 13:18:23.70 hWE3VueY.net
こんにちは。プログラミング初心者です。
TypeScriptとJavaScriptはどっちが最強なんでしょうか?
これから始める場合はどっちがいいのですか?
TypeScriptはJavaScriptとくらべ実行速度は変わらないのに
静的型付けのため記述が面倒で学習する価値がないと友達が
言ってたんですがこれは正しいですか?
519:デフォルトの名無しさん
20/10/10 14:42:01.38 xtGRZD/P.net
>>503
普段からめちゃくちゃな
読めないコード書いてる人には
難しいと思いますよ。
520:デフォルトの名無しさん
20/10/10 15:45:53.37 hWE3VueY.net
>>504
なるほど。つまりTypeScripはtコードをきれいに見せるためだけの言語ってことなんですね。
521:デフォルトの名無しさん
20/10/10 15:53:32.39 PAS52Dcu.net
価値がわかるようになるまではJS使うのをおすすめする
今TS触っても嫌いになるだけだと思う
522:デフォルトの名無しさん
20/10/10 16:35:21.67 hWE3VueY.net
ん。。。価値が分かる人にしかわからないプロ向けの言語なんですね。。。
523:デフォルトの名無しさん
20/10/10 16:57:30.55 OrgjdyW8.net
綺麗に見えるということは他人が書いたコードであっても理解しやすいといえる
524:デフォルトの名無しさん
20/10/10 17:08:45.97 hWE3VueY.net
複数人で開発するとき用ってことですね。
一人でWEBアプリ作って満足してる分には必要なさそうですね。
525:デフォルトの名無しさん
20/10/10 17:26:29.17 BjY8+1pb.net
ソースを公開する時に型は必須だな
複数人開発だと必然的に他人にソースを公開する訳だから型は必須だな
一人で開発してる時も未来の自分にソースを公開すると考えれば型は必須だな
526:デフォルトの名無しさん
20/10/10 17:30:06.10 BjY8+1pb.net
この理屈で行くと型が必要無い状況は使い捨てのコードを書く時になる
実際、実験的なコードを書くときはJavaScriptでサクッと書いてる
527:デフォルトの名無しさん
20/10/10 17:31:37.81 hWE3VueY.net
型を指定するのは実行速度のためだと思ってましたが違うんですね。
528:デフォルトの名無しさん
20/10/10 17:41:03.06 myt/k5c7.net
個人で、1ファイル、2, 300行程度のオモチャしか書かない奴にはいらないかもしれんな
複数人で、2ファイル以上のまともなコード書くなら、型は必須
「全てのfunctionが何かを引数にとって何かを返します。その『何か』はコードを読まないとわかりません」
じゃ困るだろ
529:デフォルトの名無しさん
20/10/10 17:46:03.97 hWE3VueY.net
複数人でも一つ一つ関数定義を確りして
コメントを残せば後から見返してもわかりそうな気がするのは
私がまだ未熟なんですね。
530:デフォルトの名無しさん
20/10/10 17:46:21.26 j
531:qYiciHv.net
532:デフォルトの名無しさん
20/10/10 17:56:33.59 myt/k5c7.net
>>514
でもそのコメント、人によって書き方バラバラだし、その通りに実装・使用されているかわからないよね
そのコメントが規格化されていて、その通りに実装・使用されていることを保証してくれるのがTypeScriptとでも思え
533:デフォルトの名無しさん
20/10/10 18:02:00.15 hWE3VueY.net
わかりました。TypeScriptの勉強をしてみます。
バックにはMicrosoftとGoogleがついてるみたいですので
安心して学習してみます。
534:デフォルトの名無しさん
20/10/10 18:14:27.06 myt/k5c7.net
せや
どこの馬の骨ともしれんバカではなく
MicrosoftとGoogleの天才たちを信じろ
535:デフォルトの名無しさん
20/10/10 18:32:27.26 ekvQuOcm.net
型情報による補完などのエディタの支援機能がないと書けない体になってしまった…
536:デフォルトの名無しさん
20/10/10 18:36:49.23 jkmsbl3z.net
>>504
これさ無茶苦茶なコード書いてる人がキレイなコードかけるようになるって点でTSって素晴らしいと思う
537:デフォルトの名無しさん
20/10/10 18:39:08.90 hWE3VueY.net
今日までエラーがでなければどんなコードでもいいと思ってました。
538:デフォルトの名無しさん
20/10/10 18:52:40.99 jqYiciHv.net
最終的にはそうだよ
同じ動きをするならユーザーにはどんなコードも同じ
開発側から見てどうか?ってだけ
539:デフォルトの名無しさん
20/10/10 19:08:51.73 hWE3VueY.net
開発側の立場で考えるとTypeScriptが必要になるんですね。
540:デフォルトの名無しさん
20/10/10 19:15:05.89 SwfxuCYC.net
>>503
なんか…Javascriptやってる人達ってこれくらいのレベルなんだよな…
今から始めるあなたはともかくとして、そのアドバイスしてくれたお友達のレベルもたかがしれてそう。
541:デフォルトの名無しさん
20/10/10 19:19:58.24 PAS52Dcu.net
Pythonなんかもっとひどいぞ
ただ色んなレベルの人がいるというのは新しい人が入ってきている証拠でもあるので、歓迎すべきことでもある
誰でも最初は初心者なんだしさ
542:デフォルトの名無しさん
20/10/10 19:42:13.27 w1paHL08.net
技術ブログ等で公開されているTypeScriptなコードの品質の平均はJavaScriptのそれと比べて高い。そういう意味でも使う価値がある。
もちろん例外はあるけどね
543:デフォルトの名無しさん
20/10/10 21:06:49.30 tFVag5PE.net
>>523
開発環境でリファクタリング機能の
性能に注目出来るぐらいになりましょう!
544:デフォルトの名無しさん
20/10/10 21:08:17.35 tFVag5PE.net
javascriptの言語仕様では
まともな物は作れませんので。
545:デフォルトの名無しさん
20/10/10 22:14:14.78 fDny8+f1.net
>>526
それはTypeScriptの採用によって品質が向上したというより、タイプ量やビルドの複雑さの多少の増大と引き換えに静的型付けを取るという
極めて正しい選択ができるだけの能力があるエンジニアが書いたからだろうね
546:デフォルトの名無しさん
20/10/10 22:15:54.62 6sdqDrQt.net
俺はC/C++からやってるけど、JavaScriptで型がなくって困るって事はないなあ。
ただ、形無し言語しかやったことないのなら、TypeScriptの方を薦めるけど。
(なお俺は生JSしかやっておらず、TSは触ってもいない)
Cみたいにメモリ領域を厳密に規定する為ならともかく、
Java以降の言語の型って、コンパイラで落とす為でしかない。
しかも、入口と出口で都合2回書いて、それが合っているかを確認するだけ。
実際、それでもタイポを落とせるので大変役に立つのは事実だけど、
型を間違ってエラーになるなんて事はほぼ無いし、有ってもスモークテストで確実に落とせる。
だから、言ってしまえば、スモークテストが通るまで捗るだけ。
この�
547:_、現状のC++やRustは空回りしてて、 コンパイラで落とす為に厳密に書く必要があり、結果的にやたら遠回りしてたりする。 俺が思うにあれは完全に本末転倒。コード構造が制限を受けてどうするんだよ? この点、TSは無駄に気負わず、 型の恩恵を受けつつ、面倒になれば省略出来る、位だから受けているのだと思う。 ただ、型の恩恵なんて上記の通り、スモークテストが通るまででしかない。 その後のメンテナンス性は、特にオブジェクト指向(OOP)を正しく適用出来てるかがキモになる。 ところが、JSではOOPは学べない。これはTSも同じだと思う。 周りの環境が酷すぎて、初心者~中級者にはOOPするメリットを感じられないから。 (HTMLも酷いが、ネイティブオブジェクトを拡張してもろくに動かないのも酷い) Javaや.NETみたいにびしっと作ってあれば、比較的小さな規模でも恩恵を受けられるが、 JSはそれらよりは断然高レベルプログラミングで、その分行数も少なく済み、 大体においてそんなに大規模にもならないし、OOPガッツリやる意味もほぼ無く全て済んでしまう。 だからその先、具体的にはソースコードが10k行を越えるまでは、 JSやTSは学習用言語としてはいいと思うよ。 その辺になってきて、一つの言語しか使えないってのもほぼ無いから、杞憂かもしれんが。
548:デフォルトの名無しさん
20/10/10 22:22:26.76 A0BwGHo+.net
何言ってんだこいつ
549:デフォルトの名無しさん
20/10/10 22:29:28.83 xMQUNHWy.net
OOPなんて使えて当たり前。OOPを神格化してる奴でOOP以外の技法も使いこなせてるヤツ見たことない。
それにOOPの価値はコードの大小に依らない
550:デフォルトの名無しさん
20/10/10 22:35:39.32 myt/k5c7.net
俺は困らないからJSでいい論は全てゴミ
想像力の欠けた引きこもりアスペが書いた妄想
これはガチ
551:デフォルトの名無しさん
20/10/10 22:36:40.03 6sdqDrQt.net
TSスレだから、TSマンセー、型マンセーな奴の echo chamber になってるだけだぞって事。
TSは悪い言語でもないが、お前がら思ってるほどJSも酷くない。
だから数あるAltJS、勿論TypeScriptもそれに含まれるが、それでもJSを殺しきれない。
型で恩恵受けるのは、スモークテストまでだろ。
そもそも変数名みれば型なんて自明だし、そうじゃないのが問題。
そして関数を小さく、というのがほぼ最強で、そもそも規模が小さければ変数の型が分からないなんて事はない。
型に囚われてる奴は、型の先、つまり、型が有ろうがなかろうがどうにもならない世界が見えてないのだと思うよ。
この意味でRustもリソースリークを気にしすぎ。そもそもリークなんてしないし、面倒なら最初からGC使えばいいだけ。
TSはこの辺変に気取ってないからいい。
552:デフォルトの名無しさん
20/10/10 22:43:14.81 A0BwGHo+.net
まあ自分のコードだけで完結する世界で閉じこもってる分にはそれでいいんじゃない
553:デフォルトの名無しさん
20/10/10 22:43:43.59 myt/k5c7.net
>>534
> そもそも変数名みれば型なんて自明
ハンガリアン信者の方ですか?
こんなこという奴の久々に見たわ
> そもそも規模が小さければ変数の型が分からないなんて事はない
ほんと自分の都合のいい側面しか見えてないよな
俺は困らないからJSでいい論は全てゴミ
想像力の欠けた引きこもりアスペが書いた妄想
この通りやンけ!
554:デフォルトの名無しさん
20/10/10 22:48:34.65 6sdqDrQt.net
>>532
OOPを神格化している奴がゴミなのは認める。Javaの連中が特にそう。
そして俺はそうじゃない。
ただな、DOMとかその辺が酷くて、OOPの恩恵を小さいコードでは得られないのはOOPを学ぶ上では痛いと思う。
Javaみたいにたった50行のコードにOOP強いて余計に意味不明になるのも問題だが、
自作コードのみでOOPの恩恵が受けられるのは3k行程度以上
555:必要で、 そこまでOOPを囓れないでいるのもまた問題。 正直、ここにいるお前らの半分以上はOOPを正しく理解出来てないと思うよ。 ただ、それでも書けるところが良いところなんだが。 OOPは大規模コードの整理術であって、そもそも大規模化しないのならそれが大正義だ。
556:デフォルトの名無しさん
20/10/10 22:57:06.91 6sdqDrQt.net
>>536
それはそもそも読み方を間違ってんだよ。
関数なんて大体20行程度だし、問題になるにしてもI/Fだけ。
ただそれ以前に、俺はサイトのmimnify済みのJSでも割と読めてしまうことに気づいてしまった。
「訳の分からないことをやってないこと」が重要で、そうじゃなければ追えるんだよ。
だから、初心者のコードほど読めない。これは事実。
557:デフォルトの名無しさん
20/10/10 23:00:39.67 myt/k5c7.net
>>538
世界中のプログラマーが関数なんて大体20行程度で訳の分からないことをやってないコードを書いてくれる理想郷にお住まいなのであれば、TSはいらないだろうね
558:デフォルトの名無しさん
20/10/10 23:10:25.88 6sdqDrQt.net
>>539
逆だろ。そういう理想郷を作るようにお互い努力するんだろ。
そしてTSはJSよりはそれを目指していると思うが。
関数が20行ってのはGoogleかnpmのコーディングルールに有ったはず。
コードレビューする時に「パワポ1画面に入らないような関数を書くな」だった。
実際、そこまで短くすれば、訳の分からない複雑なことは出来なくなるから、確かに効くんだよ。
559:デフォルトの名無しさん
20/10/10 23:25:22.20 BjcbKuib.net
TS は、もっと後でよい
Ruby 3.0 で型推論が入ることになったけど、作者のMatz が、
型を入れると難しすぎて、初心者が簡単にプログラミングできなくなると言ってた
型はプロ向き。
型があると、初心者のfirst choice にならない
560:デフォルトの名無しさん
20/10/10 23:26:05.68 OZkIKLkD.net
いや型がある方が楽やろ、ガイド付きやで?
561:デフォルトの名無しさん
20/10/10 23:26:47.91 OZkIKLkD.net
コンパイルエラーで検知できずに動かしてみるまでわかんないとか…
562:デフォルトの名無しさん
20/10/10 23:37:08.35 6sdqDrQt.net
ついでに言っておくと、多分TSの「型」ってのはC++やRustの連中の「型」の範疇には入らない。
多分、連中からすると「型道」から外れてる、邪道だ、と見えると思う。
それは認識しておいた方がいい。
ただ、俺はむしろその方がいいと思っている。
C++のテンプレートなんて、
「これって型がなくてダックタイプでよければさらっと書いて終わりでしたよね?」ってのが多すぎる。
MSはそこら辺、極めて現実的でいい。
あと、既に言われているが、JSerなんてこの程度、というのは当たっている。
具体的に言えば、実力を過大評価している勘違い馬鹿が多い。
ただ、それは界隈のオンボロさと、楽勝さによっているのであって、環境を共有しているTSでも同じだよ。
とはいえ俺はこれも良いことだと思っている。
つまり技術レベルが低くても達成出来ることが(見た目)大きいわけだから。
だからCとかの連中は、なんでJSerがあんなに馬鹿でも世界が回るのか、
それはつまり、界隈のシステムが上手く出来てるからなんだけど、その辺学ぶべきだと思うよ。
563:デフォルトの名無しさん
20/10/10 23:43:46.38 6sdqDrQt.net
>>541
難しくはならないが、煩雑にはなるんだよ。
そしてその煩雑さを利益が上回る為には、最低限ある程度の規模が必要で、
それは最初の最初の初心者が書くコードの規模(精々100行)では全然足りない。
だからってスクリプト言語で調子に乗ってガシガシ書いた後に型が欲しくなる時は確かにある。
その辺、従来は対応出来なかったが、TSはそこを上手く掬い取れた。
564:デフォルトの名無しさん
20/10/10 23:50:21.71 TSALDtkC.net
JavaScriptで昔書いた3000行のコードをTypeScriptに直しているんだけど
いやまあ型は便�
565:�と思えるいろんな発見があったわ;;
566:デフォルトの名無しさん
20/10/10 23:50:29.75 hWE3VueY.net
現在もっとも人気と将来性があって最強と言われる
Pythonに型がないのはどういう理由なんでしょうか?
567:デフォルトの名無しさん
20/10/10 23:56:23.03 hWE3VueY.net
パイソンはクラスは使えるようですね
568:デフォルトの名無しさん
20/10/11 00:05:58.83 rXA2CZZq.net
>>547
Pythonが受けているのは、馬鹿でも書けるから。これに尽きる。
Cだと、PCの物理的構造をある程度知ってないと理解しにくい面があるから。
ただ、Pythonが将来性があるかは疑問だと思う。
使われ続けるという意味では確実だが、プログラマを目指すのにいいか?と言われると微妙。
俺はPythonやってないが、最近かじろうとして、止めた。
String.replace(regexp)がなくて、RegExp(str)しかなく、ああこりゃ駄目だ、と思った。
なるほどPythonではクソコードしか書けない、というのは納得だ。
しかも3.0になってずいぶん経つのに、え?まだこんな所で揉めてるの?みたいな制限事項多すぎ。
ただまあ、明らかに君はそれ以前なのだから、グダグダ言わずにさっさと始めるべきだよ。
君のレベルなら、TSでもJSでもPythonでもどれでもいいと思うよ。
Pythonのクソさが分かるようになるまでに2年ほどはかかるだろうし。
569:デフォルトの名無しさん
20/10/11 00:11:31.57 rXA2CZZq.net
>>548
クラスが使える=オブジェクト指向が出来る、という意味では、
最近のプログラミング言語でそもそもOOP出来ないものは存在しない。
それほどまでにOOPは認められた存在だと言うこと。
ラムダも同様だが。(なおPythonのラムダには制限あり)
だから最近の言語はどれもこれも同じだ!と言われていて、実際そうなのだが、
敢えて違う言語を!とやったのがGo。
ただしGoは別方向にかなり糞なので初心者は止めた方がいい。(と思う)
ただ、実際はGoも結構初心者受けしている。特に形無しスクリプト言語上がりには。
570:デフォルトの名無しさん
20/10/11 00:24:04.47 n4TOsjKe.net
Pythonは 機械学習関連のライブラリが充実していて 最強の地位は10年後も20年後もおそらく変わらないだろう とプログラミングに詳しい知り合いが言ってました。 マシンスペックも上がってきているので Python のようなスクリプト言語でも 十分に実行速度が発揮でき益々 需要が伸びる可能性が高いと聞きましたが。
571:デフォルトの名無しさん
20/10/11 00:25:02.84 vIhtxp0O.net
>>547
mypyというものがあってだな
572:デフォルトの名無しさん
20/10/11 00:34:52.32 y3zg5lZo.net
スレチ
573:デフォルトの名無しさん
20/10/11 00:49:43.03 rXA2CZZq.net
>>551
ならその知り合いに聞けよ。ただそいつはヘボだと思うが。
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からモロに受け継いでいるが)
574:デフォルトの名無しさん
20/10/11 00:50:50.85 vIhtxp0O.net
型無し糞言語は死あるのみ
型推論でスマートに型サポートを受けるのが今のトレンドだよ
575:デフォルトの名無しさん
20/10/11 01:01:08.81 sfgrEAk/.net
質問ですが
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 }を持つ任意のオブジェクトを受け入れるので同等に見えまつ、
576:デフォルトの名無しさん
20/10/11 01:02:20.20 sfgrEAk/.net
戻り値を忘れたorz
: boolean
型推論って便利ですよね、、、
577:539
20/10/11 01:27:53.11 B+MSoWxK.net
YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
Python, PHP, JavaScript などを絶対に言わない
初心者のfirst choice としては難しすぎる。
挫折確率が高すぎる
ただ年末に、Ruby 3.0 で型推論が入るから、
KENTA も、この方針を変えるかも知れない
大事件勃発!
Ruby on Rails に頼っている、すべての学校の方針が変わってしまう
ただ、first choice がGo と言うのは、絶対に無理
578:デフォルトの名無しさん
20/10/11 01:46:46.27 +wOaiLh4.net
>>556
この場合は多分同等なのでシンプルな前者で良い
後者は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が適しているとは限らないので注意(特に上の例はかなり適当なので)
579:デフォルトの名無しさん
20/10/11 06:43:46.76 vDn4Pmub.net
Pythonは型を書いてもインタプリタがそれを無視して実行してくれる
高速に実行したければPyPy使えばネイティブコードに近い速度で実行出来るしmypyで型チェックも出来る
JavaScriptで型を書くと単に構文エラーになるだけだが、その内無視して実行してくれる様になるだろう
そうなったらTypeScriptは要らなくなる
580:デフォルトの名無しさん
20/10/11 07:10:15.21 qONvW7Si.net
妄想おつ
581:デフォルトの名無しさん
20/10/11 07:22:42.40 vDn4Pmub.net
Pythonみたいに動的型言語に型アノテーションを追加する事が主流になるだろう
Union型は動的型だから出来る事で、完全に静的型にするとC++みたいになってしまう
動的型+型アノテーションは良いとこ取りで、プロから初心者まで皆が満足出来る
582:デフォルトの名無しさん
20/10/11 07:34:29.67 6reX+khV.net
Pythonは10年前にやったときは凄い言語機能だと思ったけど、それからあんまり進化しなくて今はJSにすら言語機能的には劣ってる。Pythonの良いとこ他の言語も取り込んじゃったからね。
でもそれとライブラリが充実してるってのは別問題で、このライブラリの充実っぷりがJS|TSにもあったら天下取れるのになぁと思う。
機械学習はライブラリの最適化がキモで言語の速度なんてほとんど関係ないし