[過去ログ] TypeScript part2 [転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
802(1): 2017/08/12(土)11:10 ID:3DdLvbHE(1/4) AAS
tsconfig.json で noImplicitAny をtrueにしてみたら、npmからのモジュールをimportしている部分で
こういうエラーが大量に出るようになってしまった。
error TS7016: Could not find a declaration file for module 'モジュール名'.
importをrequireに戻したら逆に不便だし、自分で .d.ts を用意するには数が多すぎて追いつかない。
noImplicitAny の対象を自分のコードのみに限定する(node_modules以下を対象外とする)
なんてことはできないんだろうか。
803: 2017/08/12(土)11:34 ID:DE4QKP9/(1/7) AAS
>>802
俺は普通に使えてるけどな。tsconfig全体を貼ってみたら?
804: 2017/08/12(土)11:38 ID:DE4QKP9/(2/7) AAS
あと使ってるライブラリも。ライブラリによって違うのかな?
俺はreduxとかreactとかmoment.jsとかimmutable.jsとか色々入れてるけど
特にそういう不具合が起きたことはないな。
多分デフォルトでtsconfigの中身はnode_modules対象外な気がする。
一応聞くけどwebpack使ってないよね?
805: 2017/08/12(土)11:51 ID:3DdLvbHE(2/4) AAS
このへんのモジュールが引っ掛かった。全部じゃないけど。
react-spin
cookie-parser
uuid-parse
>一応聞くけどwebpack使ってないよね?
そう、webpack使ってる。
module: {
省18
806(1): 2017/08/12(土)15:39 ID:DE4QKP9/(3/7) AAS
なんだ、全部のd.tsが見つからないって言ってるわけじゃないなら、node_modules関係なくない?
足りないd.tsファイルは自作するしかないでしょ。インストールしたのに見つからないなら問題だけど
807: 2017/08/12(土)15:56 ID:DE4QKP9/(4/7) AAS
webpackのresolveが抜けてるんじゃない?
resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx'],
modules: [
"node_modules/"
]
},
808: 2017/08/12(土)16:09 ID:DE4QKP9/(5/7) AAS
>react-spin
あとreact-spinは型定義にないみたいね。でもこれくらいなら五分で自作できるから大丈夫。
809(1): 2017/08/12(土)18:30 ID:3DdLvbHE(3/4) AAS
>>806
noImplicitAny = false なら .d.ts が無くても使えていたんで何か方法はないかと思ったけど、
無いならしょうがないね。ありがとう。
810: 2017/08/12(土)19:23 ID:DE4QKP9/(6/7) AAS
>>809
いやいや。簡単だから諦めないでよ。特にreact-componentなら簡単に自作できる
外部リンク[ts]:github.com
これとか参考になると思う
811(1): 2017/08/12(土)19:49 ID:3DdLvbHE(4/4) AAS
最初に書いたとおり、単に数が多いからやってられんてだけ。
812: 2017/08/12(土)19:58 ID:DE4QKP9/(7/7) AAS
>>811
あーなるほど失礼
もともとjs案件だったってこと?
813: 2017/08/13(日)21:25 ID:LJmg41iW(1) AAS
(new Error()).stack みたく 実行箇所のtsファイル名と行番号を取得する方法ってないですかね。
プリプロセッサみたくコンパイルする過程でファイル名と行番号に変換するような定数があればいいんですけど
814(2): 2017/08/15(火)09:46 ID:yLrj+bDi(1/3) AAS
o : any が"x"というメンバーを持っているか調べるのは if ("x" in o) でできるけど、
o.x の型がstringかどうか調べようと if (typeof o["x"] === "string") とやるとESlintの
no-string-literalに引っかかってしまう。
このルールを無効にする以外にメンバーの型をチェックする方法ってないですかね?
815: 2017/08/15(火)14:18 ID:tN8D0FqC(1/2) AAS
>>814
無理 any型を使ってる時点でtsにできることは無い
816(1): 2017/08/15(火)14:30 ID:Yyv6Foyi(1/2) AAS
>>814
一旦変数に入れてからアクセスすればいいんじゃない
const x = "x";
if (typeof o[x] === "string") { ...
817(1): 2017/08/15(火)15:31 ID:yLrj+bDi(2/3) AAS
>>816
なるほど、そんな方法が。うまくいったみたい。ありがとう。
使う直前で変数に入れるならdisableにするのとさほど変わらないけど、メンバー名はどこかで
一元管理しておけってことかな。
818(1): 2017/08/15(火)17:11 ID:tN8D0FqC(2/2) AAS
>>817
単に変数oにinterface定義してあげればいいだけでは。
そもそもtslintじゃなくてeslint使っているという状況もよくわからない
819: 2017/08/15(火)17:54 ID:yLrj+bDi(3/3) AAS
あぁ、eslintって書いたのはtslintの間違い。
>単に変数oにinterface定義してあげればいいだけでは。
ネットワークやファイル経由のjsonとか、型情報が落とされたオブジェクトからの復元なんで。
820(1): 2017/08/15(火)23:34 ID:Yyv6Foyi(2/2) AAS
>>818
いや静的型チェックと実行時型チェックをごっちゃにしちゃダメでしょ
TypeScriptは静的型チェックを提供するものなんだから実行時型チェックにinterfaceなんて持ち出す道理がない
821: 2017/08/17(木)11:02 ID:wX4L2Jep(1) AAS
>>820
そうだったね。ごめん
822: 2017/08/22(火)22:13 ID:/ptFhj0b(1) AAS
TSの環境の開発の旗振りって誰?
いつになったら開発環境が安定するの?
webの情報のほとんどが古くて使えない
823: 2017/08/22(火)22:37 ID:1PU0SC+v(1) AAS
まずVSCodeをインストール
npmでts2.xをインストール
型定義は@types/xxxxxxx
824: 2017/08/23(水)13:19 ID:12Hdps1J(1) AAS
msで作ってるから、まずはmsの開発環境試してみればいいんだろうけど、
大元の実装が不安定だったりするの?
外部リンク:github.com
825: 2017/08/23(水)13:23 ID:YtvD4LeH(1) AAS
TypeScriptの実装じゃなくて環境の方だろ?
型定義ファイルもTypingsとか@typesとかいろいろ変遷してきたし
826: 2017/08/23(水)19:59 ID:KTb6BBkr(1) AAS
TypeScript1.0が出たころ何冊も本が書かれたけど、その後どんどん進化するから誰も手を出さなくなったな。
827: 2017/08/23(水)20:36 ID:CbozNT9/(1) AAS
進化に関係なく使う人が居て需要があれば本は出される
出されないってことは・・そういうことだ
828: 2017/08/25(金)02:06 ID:+9ilYHDI(1/2) AAS
ジェネリクスで教えてほしいことがあるんですが
型がundefinedかそうでないかで処理分岐をしたいんですがどうすればいいでしょうか
外部リンク:goo.gl
上記のようなコードはジェネリクスだとPはコンパイル時に解決されるものだからダメですよね。
じゃあどうすればいいんでしょうか。
もちろん引数にpayload:P みたいなのがあればtypeGaurdが使えるんですけど、それがない場合は?
829(1): 2017/08/25(金)07:45 ID:HjHZR7Zb(1) AAS
試してないけど、Pのローカル変数を置いてみるのは?
初期化できないとダメかな。
830: 2017/08/25(金)09:42 ID:WV+v2bcZ(1) AAS
コンパイル時に型自体の比較が出来ればいいんだけどねぇ
831(1): 2017/08/25(金)12:42 ID:ai11peC4(1) AAS
型がundefinedって言うのは違うのでは?
変数がundefinedならわかるけど考え方の次元が違う気がする
Add<undefined>(item);ってありえないだろ
832: 2017/08/25(金)18:31 ID:uvmzLTaY(1) AAS
undefinedの型はundefinedだよ
833: 2017/08/25(金)21:39 ID:+9ilYHDI(2/2) AAS
>>831
undefined型、null型あります
834: 2017/08/26(土)04:59 ID:FZcG7krL(1) AAS
undefined null void never 使い分け出来てる?
835: 2017/08/27(日)13:34 ID:0P4eY3kj(1/3) AAS
>>829
だめでしたわ。やはり最終的に生成されるjsコードが型がないからなにもないところに型を定義するのは無理っぽい
ジェネリクスって使う側には幸せだけどライブラリを作ろうって思うとなかなか難しいす。
実は以下のコードが小さくて見やすいので改造できないか試しているんです。
外部リンク[ts]:github.com
store.dispatch(someAction()) というように同期型のアクションを作るときはパラメータ引数無しで使えるんだけど
非同期アクションを使おうとした場合はパラメータ引数なしの表現ができないんですよ。
省2
836: 2017/08/27(日)13:49 ID:0iS30aa2(1/3) AAS
そもそも何がしたいのかわからないんだけど
引数追加したいけないのか?
837: 2017/08/27(日)13:55 ID:0iS30aa2(2/3) AAS
レス見てなかった
ごめんごめん
838(1): 2017/08/27(日)14:17 ID:iBnNI7N6(1) AAS
引数にPが含まれていない以上呼び出し時の型パラメータはハードコーディングしなきゃならんわけで、
それならOnlyH用の関数と分けてしまっても大して変わらんだろう。処理自体は共通化すればいいし。
839: 2017/08/27(日)14:23 ID:0iS30aa2(3/3) AAS
ところで本当にこれジェネリックの問題?
840(1): 2017/08/27(日)14:27 ID:wLayuApT(1/2) AAS
C++でならテンプレートの特殊化で書けるし書きたい気持ちはよく分かる
841(1): 2017/08/27(日)17:42 ID:0P4eY3kj(2/3) AAS
>>838
もちろんそれならできることは確認してますが、それだったら引数にundefined
許容したほうがいいかなーと。
ジェネリクスは知らないことが色々ありそうなんでもしかしたら解決方法があればと想ったんですが、、、、
typescriptの進化を待ちます、、、。
>>840
c++だとできるんですか。
省1
842(1): 2017/08/27(日)21:19 ID:wLayuApT(2/2) AAS
>>841
何というかC++のテンプレートは強力過ぎる
Boost::Spiritみたいにコンパイル時に構文解析器を生成するような変態的なことさえ可能
ただしコンパイル時間は死ぬ
外部リンク:ideone.com
C++っぽくないコードだけどとりあえず
843: 2017/08/27(日)21:38 ID:0P4eY3kj(3/3) AAS
>>842
わ、わかんないです。c++昔使ったことがあるから分かるかと思ったら全然わからなかったという。
でも、ありがとうございました。
844(1): 2017/08/28(月)18:40 ID:g1F8jR1j(1) AAS
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
省9
845: 2017/08/28(月)20:16 ID:3Zs55+dM(1) AAS
>>844
実行環境が書いてないから正確にはわからんのだけど
chromeとかブラウザ環境のjsはモジュール管理機構が無いからwebpackとか使わないと直接は実行できない。
846(1): 2017/08/30(水)15:24 ID:0nj0F5xg(1/4) AAS
初心者なんだけど質問いいだろうか?
JS使う必要ある→ES5以前気持ち悪い→ES6未対応多い
という流れでTypeScript勉強しようかと思ったんだけど、手元にある本が分かりやすいけど1.0対応なんだ
追加機能を順に追えば問題ないだろうと思ったんだけど、更新箇所が多岐にわたるためか結構面倒で
ある程度網羅してそうなのも1.0からは追ってなかったりして、少し悩んでる
バージョンごとの差分を丁寧にまとめてくれているサイトか、
最新に近いバージョンを網羅的に解説してるサイトを、差分を意識しながら読もうかと思ってるんだけど、
省1
847(2): 2017/08/30(水)15:36 ID:KRZoTQ7y(1) AAS
公式のWhat's newがベスト
差分付き公式アナウンスの日本語訳もあったはず
848: 2017/08/30(水)17:14 ID:0nj0F5xg(2/4) AAS
>>847
ありがとう
公式サイトのドキュメントは「英語でこれだけ読むのはだるい」と回避しちゃってたけど、
確かに差分把握程度なら英語苦手でもなんとかなりそうだし、どうしても分からなければそこだけ別途調べればいいかな……
849: 2017/08/30(水)17:16 ID:0nj0F5xg(3/4) AAS
>>847
なんか完璧ボケたレスした、すまない
読んで公式確認して〜してる間に2行目が頭から抜け落ちてた
日本語訳あるなら探してみるわ
850(1): 2017/08/30(水)17:22 ID:t7ExSs7Y(1) AAS
>>846
その用途ならbabel使え
型が欲しい人が使うのがTS
851: 2017/08/30(水)19:16 ID:2eRd6qUC(1) AAS
俺的には初心者こそTypeScriptってカンジがするけどね。
書いてる最中にエラーが出るから曖昧な知識を補填してくれる。
基本的にはES2015 + 型 だからESの仕様を勉強してればそれがTypeScriptとほぼ一致する。
852(1): 2017/08/30(水)23:22 ID:0nj0F5xg(4/4) AAS
>>850
型がある方が楽なんで問題ありません。ありがとうございます。
普段よく使うのが C#, Ruby なんで CoffeeScript も見た目や好きなんですけど……。
853: 2017/08/31(木)10:22 ID:J0kol7QQ(1) AAS
俺はもうTSだけのトランスパイルで落ち着いちゃったんだけどBabel通すメリットある?
Symbolない環境でもArrayLikeをfor-ofできるならBabel使うけどそうでもなさそうだし
わざわざビルドを複雑にする理由がない
854: 2017/08/31(木)18:05 ID:c0+jc73k(1) AAS
>>852
見た目は大事だね
855: 2017/09/01(金)13:39 ID:/s9HCfxW(1/2) AAS
納期ギリギリでリリースしてきたな
856: 2017/09/01(金)14:35 ID:gwzO0YnZ(1) AAS
Announcing TypeScript 2.5
外部リンク:blogs.msdn.microsoft.com
857: 2017/09/01(金)18:09 ID:NFcRuct1(1) AAS
これリリースする意味あるんか?
858: 2017/09/01(金)18:55 ID:/s9HCfxW(2/2) AAS
やることなくなったんならcommunityに丸投げした大量のバグ修正しろやって感じ
859: 2017/09/02(土)17:49 ID:p+zwcdRJ(1) AAS
プロジェクトの管理者が長期休暇で居なかったからな
今回はバグ修正とリファクタリングが多い
不在の間に溜まってたissueとPRも整理途中って感じだ
860: 2017/09/02(土)17:50 ID:pn8ujE89(1) AAS
そう聞くとなんかほっこりした
861: 2017/09/03(日)14:18 ID:25YGmHNv(1) AAS
Angelar4どう?
862(1): 2017/09/03(日)16:16 ID:uF0EtmbD(1) AAS
4はパフォーマンス改善が大きい
あとはifとか
もう9月だから5出るぞ
863(1): 2017/09/04(月)09:30 ID:XPn2hQsA(1) AAS
Angular 2/4が狭量で遅すぎる理由
外部リンク:postd.cc
864: 2017/09/04(月)15:20 ID:YyUl+V5/(1) AAS
>>863
原文のコメント欄でかなり叩かれてるね
865(1): 2017/09/04(月)21:01 ID:54ysCAWj(1) AAS
自分でTL;DRって書いてあるからそっとしておけばいいのに
866: 2017/09/04(月)23:02 ID:WJEd6wUZ(1) AAS
>>862
もうそんな時期か
ネットで探すと2ばっかりで4少ない
867: 2017/09/05(火)08:07 ID:JsNUX7wh(1) AAS
>>865
tldrの意味を間違えて解釈してないか?
868: 2017/09/06(水)08:52 ID:ZKLFsM4G(1) AAS
外部リンク:eow.alc.co.jp
TLDR
【略】
=Too long. Didn't read.
長過ぎ。読みませんでした。/長文うざい(と言う人のための要約)。
◆【場面】ネット上などで「文章が長過ぎる」と文句を言う。転じて「長文を嫌う人のための要約」という意味でも用いられる。
869: 2017/09/06(水)18:28 ID:8/JJ3nEQ(1) AAS
○次受けが多いほど退場率が早くなる。高くなる
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ
長時間労働 高稼働 高スキル要求が多い
零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと
これならJIETから3次でいったほうがいいな
省17
870(1): 2017/09/19(火)11:15 ID:/BmvhpgH(1) AAS
jsbinみたいなやつでautocompleteをサポートしたeditorあるやつないかな。
誰か作って
871: 2017/09/20(水)19:34 ID:n6fd8Yhd(1) AAS
immutable.js v4まだちゃんと動かんのね。補完効くなら早く使いたい。
872: 2017/09/26(火)15:23 ID:ghZl2iPU(1) AAS
TypeScript Deep Dive
外部リンク:basarat.gitbooks.io
見つけた。読むと幸せになりそう
873: 2017/09/27(水)03:23 ID:+Ye2aVjL(1) AAS
更新履歴確認できる?
874: 2017/10/03(火)18:20 ID:W51YTaAn(1) AAS
外部リンク:blogs.msdn.microsoft.com
Strict function types
外部リンク:github.com
五周年!
875: 2017/10/03(火)18:39 ID:9EEmWhET(1) AAS
まだ五年しかたってないんだ。
876: 2017/10/09(月)07:06 ID:9dKH0tXT(1) AAS
flowは静的解析ツールでtypescriptが言語ってことでいいの?
877: 2017/10/09(月)21:16 ID:3eEbeVt6(1) AAS
flowはゴミだから気にしなくていいよ
878(1): 2017/10/10(火)03:03 ID:kZcMF3GJ(1) AAS
今はTSとほぼ同じ構文が使えるみたいだし推論が強い分言語としてはFlowのほうが格上になったと思うよ
開発ツール等を含めた評価はどうなるか知らんが
879: 2017/10/10(火)19:56 ID:n13p9MLl(1) AAS
>>878
対応するライブラリが圧倒的に少ないからflowはゴミだよ
TSと完全互換とかならまだ可能性あったかもね
880(1): 2017/10/12(木)06:43 ID:D9zQ5ULh(1) AAS
最初は俺もゴミかと思ったけど静的解析ツールとしてってことだと
jsのプロジェクトに段階的に型をつけていくならありかなって思ったんだよね。
881: 2017/10/12(木)08:50 ID:x7s9E0v1(1) AAS
>>880
TSだって段階的に型を付けられるっしょ。
882: 2017/10/14(土)22:19 ID:A+SmlCyw(1) AAS
外部リンク:github.com
typescript 2.6 ローカライズが全面的に入るっぽい
上下前次1-新書関写板覧索設栞歴
あと 120 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s