TypeScript part2 [転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
http://www.typescriptlang.org/
TypeScript lets you write JavaScript the way you really want to.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.
前スレ
http://peace.2ch.net/test/read.cgi/tech/1349187527/ まずVSCodeをインストール
npmでts2.xをインストール
型定義は@types/xxxxxxx TypeScriptの実装じゃなくて環境の方だろ?
型定義ファイルもTypingsとか@typesとかいろいろ変遷してきたし TypeScript1.0が出たころ何冊も本が書かれたけど、その後どんどん進化するから誰も手を出さなくなったな。 進化に関係なく使う人が居て需要があれば本は出される
出されないってことは・・そういうことだ ジェネリクスで教えてほしいことがあるんですが
型がundefinedかそうでないかで処理分岐をしたいんですがどうすればいいでしょうか
https://goo.gl/L6wazS
上記のようなコードはジェネリクスだとPはコンパイル時に解決されるものだからダメですよね。
じゃあどうすればいいんでしょうか。
もちろん引数にpayload:P みたいなのがあればtypeGaurdが使えるんですけど、それがない場合は? 試してないけど、Pのローカル変数を置いてみるのは?
初期化できないとダメかな。 コンパイル時に型自体の比較が出来ればいいんだけどねぇ 型がundefinedって言うのは違うのでは?
変数がundefinedならわかるけど考え方の次元が違う気がする
Add<undefined>(item);ってありえないだろ >>831
undefined型、null型あります undefined null void never 使い分け出来てる? >>829
だめでしたわ。やはり最終的に生成されるjsコードが型がないからなにもないところに型を定義するのは無理っぽい
ジェネリクスって使う側には幸せだけどライブラリを作ろうって思うとなかなか難しいす。
実は以下のコードが小さくて見やすいので改造できないか試しているんです。
https://github.com/aikoven/typescript-fsa/blob/master/src/index.ts
store.dispatch(someAction()) というように同期型のアクションを作るときはパラメータ引数無しで使えるんだけど
非同期アクションを使おうとした場合はパラメータ引数なしの表現ができないんですよ。
store.dispatch(someAsyncAction.started(undefined)) と書かなきゃけない。
ここのundefinedを省略する方法を探っていたんですよね。 そもそも何がしたいのかわからないんだけど
引数追加したいけないのか? 引数にPが含まれていない以上呼び出し時の型パラメータはハードコーディングしなきゃならんわけで、
それならOnlyH用の関数と分けてしまっても大して変わらんだろう。処理自体は共通化すればいいし。 C++でならテンプレートの特殊化で書けるし書きたい気持ちはよく分かる >>838
もちろんそれならできることは確認してますが、それだったら引数にundefined
許容したほうがいいかなーと。
ジェネリクスは知らないことが色々ありそうなんでもしかしたら解決方法があればと想ったんですが、、、、
typescriptの進化を待ちます、、、。
>>840
c++だとできるんですか。
どう書くのか知りたいです >>841
何というかC++のテンプレートは強力過ぎる
Boost::Spiritみたいにコンパイル時に構文解析器を生成するような変態的なことさえ可能
ただしコンパイル時間は死ぬ
ttps://ideone.com/6V11EP
C++っぽくないコードだけどとりあえず >>842
わ、わかんないです。c++昔使ったことがあるから分かるかと思ったら全然わからなかったという。
でも、ありがとうございました。 import 'reflect-metadata';
function logType(target: any, key: string) {
var t = Reflect.getMetadata('design:type', target, key);
console.log(`${key} type: ${t.name}`);
}
class Demo {
@logType
public attr1: string;
}
Visual Studio 2017 で上記のビルドは問題ないのですが
実行すると、「exports は定義されていません」と出てしまいます。
tsconfig.json で
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
は指定しています。
何か足りないのでしょうか? >>844
実行環境が書いてないから正確にはわからんのだけど
chromeとかブラウザ環境のjsはモジュール管理機構が無いからwebpackとか使わないと直接は実行できない。 初心者なんだけど質問いいだろうか?
JS使う必要ある→ES5以前気持ち悪い→ES6未対応多い
という流れでTypeScript勉強しようかと思ったんだけど、手元にある本が分かりやすいけど1.0対応なんだ
追加機能を順に追えば問題ないだろうと思ったんだけど、更新箇所が多岐にわたるためか結構面倒で
ある程度網羅してそうなのも1.0からは追ってなかったりして、少し悩んでる
バージョンごとの差分を丁寧にまとめてくれているサイトか、
最新に近いバージョンを網羅的に解説してるサイトを、差分を意識しながら読もうかと思ってるんだけど、
慣れてる者の視点で、なんかいいサイト or 書籍があったら教えてくれないか? 公式のWhat's newがベスト
差分付き公式アナウンスの日本語訳もあったはず >>847
ありがとう
公式サイトのドキュメントは「英語でこれだけ読むのはだるい」と回避しちゃってたけど、
確かに差分把握程度なら英語苦手でもなんとかなりそうだし、どうしても分からなければそこだけ別途調べればいいかな…… >>847
なんか完璧ボケたレスした、すまない
読んで公式確認して〜してる間に2行目が頭から抜け落ちてた
日本語訳あるなら探してみるわ >>846
その用途ならbabel使え
型が欲しい人が使うのがTS 俺的には初心者こそTypeScriptってカンジがするけどね。
書いてる最中にエラーが出るから曖昧な知識を補填してくれる。
基本的にはES2015 + 型 だからESの仕様を勉強してればそれがTypeScriptとほぼ一致する。 >>850
型がある方が楽なんで問題ありません。ありがとうございます。
普段よく使うのが C#, Ruby なんで CoffeeScript も見た目や好きなんですけど……。 俺はもうTSだけのトランスパイルで落ち着いちゃったんだけどBabel通すメリットある?
Symbolない環境でもArrayLikeをfor-ofできるならBabel使うけどそうでもなさそうだし
わざわざビルドを複雑にする理由がない やることなくなったんならcommunityに丸投げした大量のバグ修正しろやって感じ プロジェクトの管理者が長期休暇で居なかったからな
今回はバグ修正とリファクタリングが多い
不在の間に溜まってたissueとPRも整理途中って感じだ 4はパフォーマンス改善が大きい
あとはifとか
もう9月だから5出るぞ 自分でTL;DRって書いてあるからそっとしておけばいいのに >>862
もうそんな時期か
ネットで探すと2ばっかりで4少ない >>865
tldrの意味を間違えて解釈してないか? https://eow.alc.co.jp/search?q=tldr
TLDR
【略】
=Too long. Didn't read.
長過ぎ。読みませんでした。/長文うざい(と言う人のための要約)。
◆【場面】ネット上などで「文章が長過ぎる」と文句を言う。転じて「長文を嫌う人のための要約」という意味でも用いられる。 ○次受けが多いほど退場率が早くなる。高くなる
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ
長時間労働 高稼働 高スキル要求が多い
零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと
これならJIETから3次でいったほうがいいな
446非決定性名無しさん2017/08/02(水) 22:12:48.95
JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした
JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の間でやらしている。
372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ
自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる jsbinみたいなやつでautocompleteをサポートしたeditorあるやつないかな。
誰か作って immutable.js v4まだちゃんと動かんのね。補完効くなら早く使いたい。 flowは静的解析ツールでtypescriptが言語ってことでいいの? 今はTSとほぼ同じ構文が使えるみたいだし推論が強い分言語としてはFlowのほうが格上になったと思うよ
開発ツール等を含めた評価はどうなるか知らんが >>878
対応するライブラリが圧倒的に少ないからflowはゴミだよ
TSと完全互換とかならまだ可能性あったかもね 最初は俺もゴミかと思ったけど静的解析ツールとしてってことだと
jsのプロジェクトに段階的に型をつけていくならありかなって思ったんだよね。 >>880
TSだって段階的に型を付けられるっしょ。 非英語Issueが次々と投げ込まれていくところを想像すると胸が熱くなるな
誰がこういうの決定してんだろ コマンドラインメッセージが日本語化されるの?いらんだろそれ ローカライズありがたいけどところどころ明らかな誤訳が混じってる 誤訳を見つけてくれてありがとう
お前のプルリクを待ってるぜ! コマンドラインよりhandbookの方を翻訳してほしいよね 2.4.2から2.5.3に上げたら、User defined type-guard functionとTagged union typeの組み合わせで
型をうまく判断してくれなくなった。バグか仕様変更かどっちだろう? TypescriptでReact使ってる人にお聞きしたいんですけど
Componentを継承して新しいコンポーネントを作るわけですけど、
class CurrentComponet extends React.Component<Props> {
}
とつくってさらに
class NewComponet extends CurrentComponet {
}
とやってNewComponetをつくるとしますよね。
それはそれで使えるんですけどNewComponetのpropsはCurrentComponetのpropsしか使えないですよね。
PropsをNewComponet用に拡張する方法ってないですかね?
素直に一からComponent作るしかないでしょうか >>892
class CurrentComponet<T extends Props> extends React.Component<T> {
} >>893
うほー。神よ!
でもぶっちゃけ何が起こってるのかよくわかってないです。
> class CurrentComponet<T extends Props> extends React.Component<T> {
上記Tは一体いつ解決されてるんですかね。
そもそもTypeScriptでReactのコンポーネントの書き方ってこっちが正解だったりするんで? それか
class CurrentComponet<T> extends React.Component<T&Props> {
}
でもいいな
こっちが使う側からすると楽かも
>>894
説明面倒だからggrks >>895
単純にReact.d.tsと見比べてみると良い。結局使う時に<Props>を使えるようにCurrentComponet<T> としておくのが目的
ジェネリクス型に追加情報を与えるための概念と考えると分かりやすい。
<T>をTopに残しておいてそこを解決すると React.Component<T>も自動的に追従する >>870
いろいろあるけどちゃんと探した?
今さら誰かに再発明してもらって↓とかに勝てるの?
https://codesandbox.io >>899
おっ。そこは知ってたけどTypeScriptのコード補完効くとしらなかったわ。ありがと 地味にawait書き忘れてちゃんと動かないというパターンが多発してるんですが
TSLintでawait入れ漏れで指摘する機能ってないですかね? >>901
c#だと書き忘れた場合はコンパイラが警告出してくれるんだけどね なお間に合わなかったバグフィクスはガンガン後回しにしてリリースする模様 >>906
アンギュラーってぶっちゃけ使ってる人いるの? Google自身が使ってないのにどうして使うというのか 2.6になったらコンパイルエラーが多発する。react-redux のconnect周りで。
なんでー MEAN勉強中なのにangulerってマイナーなの?ショック コンストラクタを複数定義できないのでしょうか??
うーん。 オーバーロードはできるけど、実装は1つとか・・
JSONへのシリアライズ・デシリアライズは自分で制御するので、
constructor(json: any)と
construcotr(parameter1: type1, parameter2: type2)
二つ用意したいんですけど。最初は
construcotr(parameter1: type1, parameter2: type2)だけ用意しえ、
staticメソッドの方に
statis parseJson(json: any): Class1として、そこでconstrucotr(parameter1: type1, parameter2: type2)を呼んでたんですけど、
これだと子に親のインスタンスの参照渡せないんですよね。 ごめんなさい。これじゃ何いってるからんし、意味不明ですね。 願望なんだけど
Typescriptは言語自体がWebアプリ開発用に
丸ごとフレームワークになったら良いと思う。
Flash(flex)のActionscript3も
フレームワーク化達成した様だし。
http://flex.apache.org/ >>920
JSのスーパーセット目指してるんだし無理に決まってんだろ >>920
TypeScriptでkoa.js使えばいいんでわ?
なんか違うの? レス数が900を超えています。1000を超えると表示できなくなるよ。