TypeScript part3

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/04/26(木) 21:48:23.07ID:mMDBzDaB
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/
2018/12/25(火) 02:39:04.38ID:atOE2BOw
動画と被ってる
2018/12/31(月) 06:26:09.53ID:65rO9GPR
rollup覚えた
2019/01/10(木) 03:06:03.03ID:Zf9Oh0RM
export as namespace が何をどうしてるのかさっぱりわからん
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/
167デフォルトの名無しさん
垢版 |
2019/02/14(木) 09:58:56.90ID:fCWwgaGu
JavaScriptを勉強したことがないので、今からならどうせならとTypeScriptの方を身につけたいんだけど・・・・
これって先ずJavaScriptが出来ないことには実用にならないの?
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 が出来るようになる
170デフォルトの名無しさん
垢版 |
2019/02/14(木) 11:22:03.05ID:MlsuSDTj
>>167
javascript9割以上+TypeScript追加仕様なんだからjsやらないなら使う意味ねえだろ
2019/02/15(金) 00:32:30.89ID:UOWlr3Ch
正確にはTypeScript使ってるとJavaScriptの深い部分が気になってきて、最終的には自然とJavaScriptを勉強し始めてるよ
気にせずTypeScriptから始めれば良い
2019/02/15(金) 19:47:15.67ID:iHivKYcL
tsだけで理解できることをjsを経由する意味はないしむしろ型を考慮しないダーティーな解法を覚えさせられるだけ有害
2019/02/15(金) 22:59:18.80ID:XxBbyQo/
tsの、ライブラリの95パー以上がjsなんだから
どうにもならん。

pythonの型アノテーションを
完全に付ける書き方に別言語名つけてるようなもんだ。
2019/02/16(土) 16:31:11.68ID:HHyiFibH
>>172
動的型は型を考慮しないと思ってんのはお前だけだ
JavaScriptの全ての変数に型は存在しているし目の前の変数の型を知らずにコーディングしてる奴なんていない
JavaScriptは実行時に型チェックして型の正しさを保証して、
TypeScriptは実行前に型チェックして型の正しさを保証するって違いだけだ
2019/02/16(土) 16:54:05.42ID:sYjKK7tj
作ってる時に頭の中にある型なんか、作った後には何の意味もないし、実行時に型チェックするなんて馬鹿の極み
2019/02/16(土) 16:59:02.66ID:bRo2S9Sl
つ外部入力データ
2019/02/16(土) 18:28:18.38ID:HHyiFibH
>>175
頭の中w
JavaScriptには全ての変数に型があるんだよ
アンダースタン?
178デフォルトの名無しさん
垢版 |
2019/02/16(土) 18:29:05.39ID:STqQL4YT
jsのboolの型チェックはバグあるけどな
2019/02/16(土) 18:59:44.19ID:qw78JFeM
>>177
保守する人には作ってる人の意図はわからないって意味だよ
2019/02/16(土) 19:03:19.63ID:qw78JFeM
動的のつらみはrubyとかjavascriptで散々通ってきてtypescriptに行き着くわけだけど、
まだそこを通過中の人とは話が噛み合わないんだよなあ
結局こっちに来ることになるのに
2019/02/16(土) 19:28:50.73ID:HHyiFibH
TypeScriptにUnion型がある時点で最早動的型と言ってもいい
宣言したあとに離れた場所のコードを見ても、パッと見じゃどっちの型になってるかは分からないからね
2019/02/16(土) 19:36:05.44ID:JPFBQxX7
any型もあるぞ
2019/02/16(土) 19:38:44.73ID:qw78JFeM
>>181
typescirptってそういうところもチェックしてくれるんだぞ
2019/02/16(土) 21:04:52.10ID:czmkS5Li
データ型と混同してない?
2019/02/16(土) 21:15:59.20ID:dfsqwbBr
動的型の言語、結局人気が年々下落しはじめてる。
c#やtypescriptぐらいの、型あり基本で、
いざとなったら、部分的問わないのも、
自然で簡単に書ける、程度が今はよいな。
2019/02/16(土) 21:32:01.93ID:rUZ2ZZ3T
>>185
型を意識しない、というのは私には有用にみえます、ただし変数宣言は動的型言語にも必要だと思いますが、それを表立って採用している言語はありますかね…
2019/02/16(土) 21:54:57.88ID:aDxQaKE+
言語の人気が年々移り変わる、
ということは、
いつかtypescriptも、ほかの型付き、部分的型付き言語の人気も、移り変わる、
とは、考えないのか?
2019/02/16(土) 23:06:35.69ID:xN2b9tEZ
動的ウンコガイジどもに型の有用性説いても、豚に真珠だろ

ペチプァやらルビ豚やら、あいつら中卒のガチゲェジだからな
2019/02/17(日) 16:04:02.49ID:D60SxZ1Q
>>188
> 型の有用性
だから動的型言語にも型はあるし型の有用性を享受してんだけど…何度言っても分からない奴は分からないんだな
2019/02/17(日) 16:11:02.99ID:YF9uE98b
そんな誰でもわかってることで得意げになってるのが恥ずかしい
一合目で山に登ったつもりになってる感じ
みんなもっと上にいるから!
2019/02/18(月) 11:46:04.18ID:+IiOz1o3
動的型と静的型では型の目的が違うことを理解していないらしいな
2019/02/18(月) 23:46:52.94ID:tCwq3WHG
昔は動的型付け言語と静的型付け言語って対義語みたいに思ってたけど、
TypeScriptやってみたら単純な二元論じゃないって気付かされた。
2019/02/19(火) 21:50:14.71ID:UOAs3sqY
そう対義語じゃない、分かりやすい表現だなぁ
本当に型が無いのはアセンブリ言語で、全てが整数になっててそれをどう解釈するかは本当に人間次第だからな
194デフォルトの名無しさん
垢版 |
2019/02/20(水) 19:06:49.04ID:v7iPz90J
Cのunionもそういう意味では何でもあり
2019/02/20(水) 19:08:18.41ID:hK+DOQws
そういうのを昔の人は「型あって型なし」と言ったのだ
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はその辺の問題点引き継いでる?
2019/02/23(土) 03:19:51.50ID:R2s6jSV3
「thisというか変数スコープ」?
分かってないことは分かった。
お前はどの言語やっても大成しない。
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
2019/02/23(土) 10:27:04.01ID:apHI25Q1
thisや==は今ならeslint/tslint任せでほとんど問題ないね。
引数付きenumはようはUnion Typeだし、代数的データ型はTagged Union Typeかな。
パターンマッチそのものはないけどType Guardで似たようなことができる。
マクロとマルチプラットフォームはさすがにないな。
2019/02/23(土) 11:20:14.57ID:R2s6jSV3
haxe?ああtsに負けて滅んだ言語かw
2019/02/23(土) 11:24:28.53ID:ks3X52WF
弊社、ガイジが導入したhaxeが完全な負の遺産化しててうんざりするわ
死ねとまでは思わないけど、産まれてこなければよかったのに
2019/02/23(土) 11:27:21.05ID:rwRcja1T
thisはそもそも使う必要がない
jQueryとか昔のライブラリを使うとthisを使わざるを得なくなって混乱する
変数スコープの問題は多分変数の巻き上げの事だと思うけど、TypeScriptは変数を宣言する前にアクセスはエラーだから変数スコープの問題は無い
2019/02/23(土) 12:07:09.04ID:Y+/6FGBc
言語でマルチプラットフォームってどゆこと?
206デフォルトの名無しさん
垢版 |
2019/02/24(日) 19:32:04.72ID:iK4D+UQi
一般にバイナリ互換のこと。
スクリプト言語はソースコード=バイナリ扱いだが。

Qtとかのライブラリはソース互換やね。
そのライブラリと標準ライブラリ使う分にはマルチプラットフォーム。
2019/03/27(水) 22:29:10.88ID:ZMj2RB3N
TypeScriptのリテラル型を知って目から鱗だったんだけど、元ネタってどこなのかな?
TypeScript以前に採用していた言語とかある?
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への切り替えを決定したプロジェクトは,
 この切り替えによって外部コントリビュータによる支援をより多く受けられるようになります。私たちはこの決定を尊重します。
2019/03/31(日) 08:32:04.33ID:9gmhFJUR
Announcing TypeScript 3.4
https://devblogs.microsoft.com/typescript/announcing-typescript-3-4/
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 なら大丈夫っぽいんだが
2019/04/27(土) 23:00:39.62ID:f59bAkpS
Vueなんてゴミ使ってるのが悪い
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の定義の仕方ってあります?
2019/05/10(金) 03:36:53.56ID:lySswCnH
ついにunion distributionを理解してしまった
2019/05/20(月) 18:15:00.44ID:VITeHWYT
TS3のunknown型いいな。
てかany入れずに最初からこれにしとけや。
2019/05/20(月) 23:15:37.00ID:F98TWhut
esの上位互換である以上anyは無きゃいかんだろう。
2019/05/22(水) 08:13:28.81ID:hKcnqksZ
unknownからの簡単にキャストできるような値ばかりなら、確かにanyはいらんかったろうな
2019/05/30(木) 08:25:00.89ID:nLvOZq4e
Announcing TypeScript 3.5
https://devblogs.microsoft.com/typescript/announcing-typescript-3-5/
2019/05/31(金) 23:01:09.01ID:a9j+ivtb
TSも知らんフロントエンドエンジニアとか死んでほしいわ
2019/06/01(土) 00:45:31.22ID:MTpxg6Tq
知ってるだけでデカい顔してるフロントエンドエンジニアも死んで欲しいわ
2019/06/01(土) 16:36:48.07ID:g95cx8x2
ts知ってるだけででかい面できるってどんな現場だよ
2019/06/01(土) 19:04:47.55ID:+itGqD4a
それくらい世界はまだJSの悲しみに満ちているってことさ
救ってあげようよ、僕らで
2019/06/01(土) 19:52:58.38ID:4hNhVGGP
お前だれだよ
223デフォルトの名無しさん
垢版 |
2019/06/01(土) 20:56:08.22ID:TTPVYQ4N
strictNullChecksをtureにしてる人いる??

ロジックではnull禁止できるけどさ、
dbからgetしたデータに混じるんだよね。
未入力状態のデータって奴。

null撲滅マスターの方は、どう解決してるの??
2019/06/01(土) 20:58:48.44ID:+itGqD4a
それはDBの設計が腐ってるし、unknown | null型なんだろ
ロジックが間違ってる
2019/06/02(日) 11:14:24.16ID:567ijWyR
そもそも、実行時にnullやundefinedが混じるという話とstrictNullChecksに直接の関係はないだろ。
その中間のどこかで困っているんだろうけど、それがわからないとなんとも。
2019/06/02(日) 11:38:18.31ID:nWi1j94r
nullableなfieldをgetしたらそりゃnullableでしょ
2019/06/05(水) 02:53:11.94ID:QtDGLGvu
Visual Studio Code でAngularの勉強をしているのですが、
TypeScriptのthisがどこのコードを参照しているのかイマイチ理解できていません。
このthisをマウスオーバーしたら参照先のコードを表示してくれる拡張機能はありませんか・・・?
現状ですとthisにマウスオーバーをすると this:this と表示されます
2019/06/05(水) 08:05:19.27ID:a1ZirxB/
Angular自体糞だからやめとけ
2019/06/05(水) 08:30:28.74ID:gaDZjJ4I
vueをやるんだ
230デフォルトの名無しさん
垢版 |
2019/06/07(金) 22:14:26.23ID:GySnd9K9
みんな、質問。

TSって公式のスタイルガイド無いけど、
みんな何使ってる?
正直googleのは末尾カンマが受け付けない。。
2019/06/07(金) 22:21:16.75ID:POgNcTtv
prettierで終わり
受け付けないもクソもない
おまえのスタイルは全てクソで、prettierを信じろ
232デフォルトの名無しさん
垢版 |
2019/06/10(月) 00:34:38.75ID:pNMWMTmc
>>231
設定は??
信じていいprettierはデフォ設定でOKなの?
2019/06/10(月) 07:11:15.54ID:s0ANUlh8
>>232
デフォと言いたいが

arrowParens: "always",
semi: false,
trailingComma: "es5",

のみ付けるのが多い(気がする)
2019/06/10(月) 07:12:37.13ID:s0ANUlh8
semi: false,
だけは本当に極稀に問題になるから、設定しなくてもいい
目障りだから俺は設定するけどね
235デフォルトの名無しさん
垢版 |
2019/06/13(木) 17:34:43.34ID:3ecrlnnk
>>233, 234
ありがとう!試してみる!
2019/06/15(土) 19:57:13.61ID:60xjKXFz
const x = { a: 'b' };

この x の型は { a: string } になってしまうみたいだけど、 { a: 'b' } 型にする方法ってないんでしたっけ?
TypeScript 3.5です。
2019/06/15(土) 20:04:24.55ID:v9vM6Xqi
const x: { a:'b' } = { a: 'b' };
2019/06/15(土) 20:10:32.39ID:60xjKXFz
const x = { a: 'b' as 'b' }; もいけるみたいだけど冗長だなぁ。
2019/06/15(土) 20:14:03.78ID:LRsRofRH
as const
2019/06/15(土) 20:32:57.50ID:60xjKXFz
>>239
ありがとう!これだ。
2019/06/15(土) 22:08:42.82ID:B5XNjjWA
デフォルトで全部 as const にするオプションとかあればいいのに
2019/06/21(金) 19:39:39.40ID:NhtzQec8
今日の疲れやばい
2019/06/21(金) 19:42:13.96ID:NhtzQec8
anyを許すルールにするっつったら
「でもapiからくる値なら全て型定義できますよね?」
って言われたことにものすごい疲れた
完璧なappなんかねーんだよ!!!ってキレそうだったわ
2019/06/21(金) 19:42:54.97ID:NhtzQec8
一生インターフェース書いてろ!
2019/06/22(土) 13:59:29.40ID:cvRfxwEO
そこでunkownですよ
2019/06/22(土) 14:09:53.49ID:lgEn1aKj
unknown確か途中で足されたよな。最初から入れとけおもた。
2019/06/22(土) 15:50:14.82ID:cvRfxwEO
みんあなはallow any 派?
248デフォルトの名無しさん
垢版 |
2019/06/22(土) 18:02:27.27ID:WCwRyrQC
>>247
許容派です。
再帰処理とかをまともに型付してたら、辛すぎる。。

ちなみに
const arr = []
で、never[]型になるのがしんどい。

設定でany[]型にならないでしょうか・・?
2019/06/22(土) 20:42:33.24ID:vT6NYB6v
明示的に型を書けばいいじゃん
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")

でやり過ごしてる
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)∗∗∗
253デフォルトの名無しさん
垢版 |
2019/06/24(月) 11:46:37.72ID:eHWTfFeZ
コンパイラにバグが無い
コンパイル中にコードのバグは発見出来る
アルゴリズムのバグは知らんがな
2019/06/24(月) 21:38:49.72ID:RR0ut14u
TypeScriptで書いたプロダクトにバグが少ないのか、TypeScriptコンパイラにバグが少ないのか、どっちよ?
2019/06/24(月) 21:39:48.85ID:RR0ut14u
あと今土器pdfなんかで出すなよボケカス
日本語翻訳使えないだろが
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/
他の言語と比べてどうこうはわからん

あと動的型無し糞言語がゴミというのも同意
257デフォルトの名無しさん
垢版 |
2019/06/25(火) 18:21:53.19ID:Cc6pu6kp
>>254
TSで書かれたソフトウェアにバグが少ない
そのPDFによれば調査対象のメジャーな10種くらいの言語の中で最も少ない
2019/06/25(火) 20:19:43.86ID:VFPzRDke
C#と大して変わらんのにバグが少なくなるって根拠がよく分からん
JavaScript上がりのプログラマが使うことが多いから良く訓練されているってのが考えられる根拠だなw
2019/06/25(火) 23:32:40.42ID:AQeJL9YJ
ユーザのリテラシが高いが後押ししてるのはありえそうだな

phpあたりは言語もユーザもガイジだからかわいそう
2019/06/26(水) 00:17:43.45ID:+9DnWsFD
JavaScriptは初心者が触るには最悪の言語と言っても過言ではないないから、ありとあらゆるバグを出して大変な目に遭ったプログラマがTypeScriptを使うことになると、バグも少なくなるだろうなという意味だよ
2019/06/26(水) 00:40:51.84ID:q5HP9tQR
つか論文?の表の見方がわからんのだが
2019/06/26(水) 00:41:37.75ID:q5HP9tQR
よくよく読んだら、ほんとは一番バグが多かったとかいうオチ??
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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