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/10/20(土) 14:25:59.55ID:QA1RjyY/
Typescriptのコンパイラのソースコードを見たが、
swicth文による条件分岐が乱用されていて美しいソースコードではなかった。
もっと良い設計があるはず。
2018/10/20(土) 15:52:27.22ID:/P2yZ5ci
構文木のような構造には多態はうまくマッチしないんだよ
2018/10/20(土) 18:08:40.09ID:odoUcQpl
構文解析とか条件分岐(状態遷移)の塊だろ
状態遷移とかswitch文そのものだ
2018/10/21(日) 15:12:34.19ID:N0iXX+FC
>>88
そう思うならお前が改善してプルリク送ってもいいのよ
2018/10/21(日) 15:27:26.85ID:GSIJUR7C
>>91
なぜ高貴なハイクラスエンジニアの俺様がただ働きせにゃならんのだ?
バカなのか?
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分以上かかるようになっちゃって型チェックなしのヒルドに変更してしまってるんだけど

そういう事例って他のところにもある?
2018/11/07(水) 08:56:34.35ID:+94YsfsL
世界でも有数の大規模ソフトウェアであるVSCodeがTypeScriptでビルドされている以上、
利用者のスキルの問題でしかないな
2018/11/07(水) 15:40:12.32ID:d0XTpm7T
まぁ、今どきVueを選んじゃう技術力・審美眼のないとこじゃしょうがないんじゃないか?
糞うるさいポンコツウインドウズXPとか使ってそう
2018/11/07(水) 16:13:39.60ID:mdwOvRGk
React使いがよく言うよな。技術力&審美眼。
魔窟になってるのを技術力と言い換えて、そのアーキテクチャを美と言い換えるやつ。
2018/11/07(水) 19:54:03.59ID:ReL8stLA
うちのプロジェクトもビルド時間5分なんでどうにかしたいなぁ。
makedepend+makeが欲しい。
2018/11/07(水) 20:15:51.54ID:NQOj7Zqs
>>98
それ可笑しくね?vscodeビルドしたことあるの?
2018/11/07(水) 20:16:37.40ID:NQOj7Zqs
>>99
mbp2017つかってる。メモリは8gbだけど
2018/11/07(水) 22:25:07.54ID:LyspAo2Z
>>103
チャイニーズに尻尾振るガラパゴスVue民にはお似合いのゴミだなw
105デフォルトの名無しさん
垢版 |
2018/11/09(金) 18:28:02.99ID:npJX8Ub3
module と namespaceの使い分けは
どうやればいいの?
2018/11/09(金) 18:56:45.93ID:gzUh27KV
使い分けるものではない
moduleはnamespaceに置き換えられた
常にnamespaceを使用せよ
107デフォルトの名無しさん
垢版 |
2018/11/09(金) 19:06:31.99ID:npJX8Ub3
>>106
了解
2018/11/10(土) 09:38:47.43ID:h5ltDNBL
type と interface の使い分けは
どうやればいいの?
2018/11/11(日) 11:38:30.86ID:Cm/nwVcs
>>108
ほぼ一緒だから気にしなくていい。
Typescriptの仕様書にも「非常に似ている」と書いてある。
ただ、interfaceは

inteface Point {
x:number:
}

interface Point {
y:number:
}

というようにプロパティの追加ができるが、typeはできない。それぐらいしか違いがない。
2018/11/11(日) 13:05:47.70ID:/+pk64i1
TSLintのデフォがtypeよりinterfaceを推してくるからとりあえずinterfaceにする事が多い
2018/11/11(日) 14:07:03.02ID:R0IiHkaX
>>110
これメンスだがtypeしか使えない機能なかったっけ?
2018/11/11(日) 15:41:10.38ID:YkGULP39
交差型、共用体型を定義できるのはtypeだけだな。
2018/11/11(日) 20:39:14.47ID:3jMJhmwM
例えば file1.tsを編集していて、バックアップとしてそのファイルを複製して
file1 - コピー.ts
を作ったとすると、関数名が重複していますみたいなエラーがダダダーと
出るんですが、どのように対策すれば良いでしょうか?
114デフォルトの名無しさん
垢版 |
2018/11/11(日) 20:52:52.31ID:B3f/927d
自分はいつもバックアップはfile1.ts.bakって付けてる。
2018/11/11(日) 20:59:48.79ID:MG/LuDvG
git使いなさい
2018/11/11(日) 21:18:11.36ID:3jMJhmwM
>>115
サーバーが必要なんでしょ?
そんなの持っていないし
2018/11/11(日) 21:29:24.04ID:MG/LuDvG
必要ないですよ
2018/11/11(日) 21:29:49.74ID:cIalEm6/
gitにサーバが必要とか正気か
いいからとりあえずチュートリアルやってみろ
2018/11/11(日) 21:42:32.66ID:3jMJhmwM
>>118
チュートリアルどこにあるのよ?
2018/11/11(日) 23:28:37.79ID:R0IiHkaX
>>119
man git
で英語を読む

でも、君にはそんな技術も学も根性もなさそうだから、
やっぱりfile1 - コピー.ts.bak181110ってするのがいいと思うんだ。

いや君をバカにしてるわけではなくて。
猿は猿らしい生活をした方が幸せだと思うからさ。ね。
2018/11/11(日) 23:59:28.42ID:cIalEm6/
>>119
これ以上は他所でやってくれ
お前さんの質問に対する回答は

* 編集バックアップをファイルコピーでとるというのがクソ
* 拡張子も変えてないならビルド対象になって当然

でおしまい
2018/11/14(水) 23:56:36.53ID:aDOvGxXC
流石に不親切すぎる。猿でもわかるgitとか読むと良い
2018/11/17(土) 15:07:14.11ID:BcZrVMNP
TypeScript使うな。汚らわしい。
バカはバカらしく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コード(上のコードを同じ)は問題無く実行出来る。
これは何故ですか?
127デフォルトの名無しさん
垢版 |
2018/11/26(月) 23:28:58.28ID://9j39Lt
あのさぁ…何のためにTypescript使ってんのよ…
128デフォルトの名無しさん
垢版 |
2018/11/26(月) 23:46:28.79ID:uFKIPm3P
>>127
仕事で仕方なく
2018/11/26(月) 23:49:14.79ID:S88o/5+S
thisを使わないか、addEventListener使う
2018/11/26(月) 23:57:01.52ID:S88o/5+S
this: GlobalEventHandlers のところは this: thisじゃだめなのかな?
2018/11/26(月) 23:59:28.47ID:RFi6oWGn
アロー関数使うとかそういう話?
2018/11/27(火) 02:25:43.08ID:7n6dok9k
>>126
elemにちゃんと型(多分HTMLElement?)が指定されてればそんなエラー出ないぞ
2018/11/27(火) 09:47:55.32ID:riCGJi9o
>>132
出るよ
2018/11/27(火) 09:56:31.77ID:riCGJi9o
>>129
addEventListenerでも同じだろ
2018/11/27(火) 10:22:11.47ID:AQW0OfN+
addEventListenerは要素ごとにシコシコ定義されていて、thisがその要素になっているのでOK
onclickとかはGlobalEventHandlersでmixin的に定義されていて、this: GlobalEventHandlersになっちゃってるのでNG
136デフォルトの名無しさん
垢版 |
2018/11/27(火) 10:37:58.94ID:riCGJi9o
>>135
なるほど。でも、そもそも
this.classList ではなくて
elem.classList と書けばいいんじゃないか
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/
2018/11/30(金) 11:28:27.90ID:atRGowE7
Eitherさん素敵
2018/12/01(土) 10:07:51.30ID:7lSKHFDm
ようやくEitherでホイサーできるTSがきたか
しかしleftrightとパタマチがないとダメやろこれ
2018/12/01(土) 10:12:04.48ID:7lSKHFDm
よんだら、これEitherじゃなくホイサーだろ・・・
エラー処理強制できないEitherってナンジャー?
ゴミジャー
141デフォルトの名無しさん
垢版 |
2018/12/01(土) 18:12:50.09ID:qYhERqMT
宇宙に満ちている光を伝える媒質、だっけ。
2018/12/01(土) 21:02:52.90ID:214oHlAj
それはether
143デフォルトの名無しさん
垢版 |
2018/12/01(土) 21:38:50.33ID:qYhERqMT
旧盆に行われる沖縄の盆踊り、かな。
2018/12/04(火) 20:53:43.14ID:iqna8FaP
通常、string と string | null は同等なんでVSCodeのポップアップでも | null は省略されるけど、
これを省略させないで表示する設定ってないのかな。
strictNullChecks 使ったら区別できなくて困った。
2018/12/04(火) 21:39:51.76ID:O7AxfIIB
通常、string と string | null は同等じゃないです
2018/12/04(火) 21:46:28.77ID:WLbw6NyA
""はnullじゃないぞ
2018/12/05(水) 08:02:21.96ID:rsg3VEcH
他に困ってる人がいないってことは strictNullChecks 自体あまり使われてないのかな。
2018/12/05(水) 09:20:27.07ID:B/THyK2J
strictNullChecksは使ってるけどその困り方がよく分からないから具体的にどういうコードを書こうとした時に何が困るのか教えてくれるとありがたい
149デフォルトの名無しさん
垢版 |
2018/12/05(水) 14:47:23.52ID:2sSegHBZ
馬鹿には無理
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 としか表示されないんでこれを区別できるようにしたい。
2018/12/05(水) 20:42:07.12ID:2r3P2eMd
tsc --init しなさい
2018/12/05(水) 20:43:39.84ID:kxOqR7S7
* プロジェクトルートにtsconfig.jsonはあるか
* tsconfig.jsonでstrictNullChecks或いはstrictが有効になっているか
* そもそもVSCodeでプロジェクトルートを開いているか
2018/12/05(水) 20:51:32.34ID:rsg3VEcH
なるほど、VSCode用のtsconfig.jsonを置いてやればいいってことか。ありがとう。
ビルド用のtsconfig.jsonは別の場所に置いてた。
2018/12/05(水) 20:57:46.26ID:kxOqR7S7
そりゃプロジェクトルートに無けりゃどういう原理で探してくるんだって話だ
2018/12/05(水) 21:04:20.27ID:rsg3VEcH
じゃなくて、VSCodeがtsconfig.jsonのビルドオプションに合わせて表示を変えているとは想像してなかった。
2018/12/05(水) 21:10:24.13ID:kxOqR7S7
そもそもtscもtslintもプロジェクトルートのtsconfig.jsonなりtslint.jsonなり読むんだから・・・・・
2018/12/05(水) 21:30:49.29ID:rsg3VEcH
各.tsに対してどのtslint.jsonが使われるかという認識はあったけど、
tslintもtsconfigを見てるのか。なるほど。
2018/12/05(水) 21:32:49.41ID:kxOqR7S7
誤解を招く書き方だったから訂正しておくけどtslintはtsconfig.json読まんよ
2018/12/21(金) 21:25:18.74ID:X6PhK/jL
今日は emitDeclarationOnly でd.tsだけ出力できることを発見した
2018/12/22(土) 01:07:22.52ID:RH928dFE
jap is crazy monkeys
2018/12/24(月) 11:44:39.27ID:zyOojth7
拡張子だけ許せない
2018/12/24(月) 11:56:09.60ID:JT2deTbq
TransSexual
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
動的ウンコガイジどもに型の有用性説いても、豚に真珠だろ

ペチプァやらルビ豚やら、あいつら中卒のガチゲェジだからな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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