[過去ログ] TypeScript part2 [転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
771: 2017/06/28(水)09:12 ID:9HmGLvwZ(1) AAS
>>763
angular2
772: 2017/06/28(水)14:22 ID:R0ZTQr0d(1) AAS
Announcing TypeScript 2.4
外部リンク:blogs.msdn.microsoft.com
773: 2017/06/28(水)16:15 ID:7uiFkJf0(1/2) AAS
MSは言語と開発環境では最強
ネットや機械学習ならGoogle
アップルは…嫌い
774
(1): 2017/06/28(水)16:19 ID:DxMay05+(1) AAS
MSは言語と開発環境では最強
ネットや機械学習ならGoogle
アップルは…嫌い
775: 2017/06/28(水)16:28 ID:7uiFkJf0(2/2) AAS
>>774
何こいつ怖い
776: 2017/06/29(木)16:13 ID:f9ij8X2q(1/2) AAS
すいません。

例えば以下のようにアクションを定義してあったとして

export type Action =
{
type: 'FETCH_MAIN_FEEDS';
} |
{
省9
777: 2017/06/29(木)16:20 ID:f9ij8X2q(2/2) AAS
自己解決
export type Action =
{
type: 'FETCH_MAIN_FEEDS';
payload: undefined;
} |
{
省10
778: 2017/07/10(月)13:26 ID:gqDySAuG(1) AAS
typescriptのエラーってよくわかんないことある

(81,32): error TS2322: Type '{ path: "/logout"; component: typeof Logout; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Route> & Readonly<{ children?: ReactNode; }> & Rea...'.
Type '{ path: "/logout"; component: typeof Logout; }' is not assignable to type 'Readonly<RouteProps>'.
Types of property 'component' are incompatible.
Type 'typeof Logout' is not assignable to type 'StatelessComponent<RouteComponentProps<any> | undefined> | ComponentClass<RouteComponentProps<any...'.
Type 'typeof Logout' is not assignable to type 'ComponentClass<RouteComponentProps<any> | undefined>'.

ってでて、何のことかわからない。
省2
779: 2017/07/10(月)19:20 ID:lPQJaLkK(1) AAS
template登場したての頃のc++みたいだな
780
(1): 2017/07/12(水)20:52 ID:iKt9vtZC(1/2) AAS
@typesやパッケージ自身が持っているd.tsに問題があるとき、自分のプロジェクト内で
部分的に修正版と差し替えたりできないのかな?
Typescript2.4に上げたらいくつかのパッケージがエラーを出すようになってしまったんで
大元が対応するまでの間ちょっと回避したいんだが。
781: 2017/07/12(水)21:44 ID:46U9BX05(1) AAS
>>780
外部リンク:teratail.com
782
(1): 2017/07/12(水)22:50 ID:iKt9vtZC(2/2) AAS
リンク先のそれは解決法として正しいのかという疑問はあるがとりあえず、declareで
定義を上書きできるということかな。試してみるわ。ありがとう。
783: 2017/07/13(木)12:11 ID:SeGC5rTL(1) AAS
ここでredux-observale薦めてもらったのもあって試してるんだけど
epicを書く時 action$.ofType('FIRST’)って書いてfilterするのはいいんだけど返ってくる
Observaleがtype:’FIRST’に絞り込められてくれない。
無理やりキャストして使えってこと?
いい方法教えてください
784: 2017/07/14(金)00:10 ID:UTvPeefr(1) AAS
VS2017は2015と違ってJavaScriptで
var a = {};
a.b = 1;
と書いてその下に「a.」と入力しても候補にnumber型プロパティとしてのbはない
TypeScriptのnamespaceがブラウザの生JavaScriptでも使えるようになったら便利そうなんだけどな
785: 2017/07/14(金)15:42 ID:AYnLv9ir(1) AAS
>>782
いやいや。具体的に指摘してほしいな。
reduxのactionは基本的にobjectであれば何でもあり。というスタンスのもので
そのactionに継承関係を設定してるのはたまたま定義ファイルの作者がなんとなく決めた程度のものでしかない。

となると元々の定義を修正してしまっても不都合はないと思うんだが。

更にいうとreduxのmiddlewareの定義ファイルも、結構declareで大元のreudxの定義を改変してる。
(redux-thunkとかredux-promiseとか)
786: 2017/07/14(金)22:07 ID:Ukk3qL4L(1) AAS
「具体的に」と言っている当人が具体的にに何を指摘しているのかわからない件
787
(1): 2017/07/17(月)02:22 ID:HJdOjxBV(1/2) AAS
モジュール拡張書いてる人っていますか?
ローカルではうまく書けるんだけど、
npmで管理して外部モジュール化しようとするとうまく動かなくなる。
jsとd.tsに別れるとだめなんだろうか、、、、。
なんか参考になるnpmライブラリが有るなら事に教えてくださいm(_ _)m
788
(1): 2017/07/17(月)09:24 ID:3rVoB3WX(1/2) AAS
>>787
jsとd.tsを同じ所に置けばおk
angularとか参考になるよ
789
(1): 2017/07/17(月)12:07 ID:HJdOjxBV(2/2) AAS
>>788
ありがとうざいます。js とd.tsは同じ場所においてます、、、、
ちょっとangularはわからなかったのですが
rxjs5はoperatorをモジュール拡張の仕組みを使っているので参考になりました。
それを元に書いてるんですが、、、
どうしてもうまくいかないです。
790: 2017/07/17(月)12:30 ID:3rVoB3WX(2/2) AAS
>>789
npm rxjsした時のフォルダ構成とビルド結果が同じようにすればおk
もちろんパッケージ.jspnとかもな
791
(1): 2017/07/20(木)13:43 ID:9ngnJ+y5(1/3) AAS
typescriptってユーザー数多そうなのに
どこに生息してるん?
teratailもあんまりいなさそうだし。slackとかかね?
おせーてください
792: 2017/07/20(木)15:04 ID:heFqzBlt(1) AAS
typescript は google 社員御用達だぞ
ここのレスも 99 割が google 社員のもの
793: 2017/07/20(木)15:14 ID:9ngnJ+y5(2/3) AAS
MSとgoogleのマリアージュとか最高じゃないかな。
794
(1): 2017/07/20(木)17:31 ID:YwOQZRBC(1) AAS
>>791
TypeScriptはほぼJSだから他の言語と違って特に質問するような事ないし…
795: 2017/07/20(木)20:56 ID:9ngnJ+y5(3/3) AAS
>>794
定義ファイル周りとか結構悩むことない?
例えばreduxとかそのまま使うとTypeScriptの補完機能を活かしきれなくて
typescript-fsaとかを使って補強してやると凄く調子良く動く。
796: 2017/07/28(金)10:18 ID:O7VztC89(1/2) AAS
外部リンク[html]:jp.vuejs.org
vuejsもtypescriptとの親和性上がってるのかな。
昔はいまいちだったんだけど
797: 2017/07/28(金)21:08 ID:O7VztC89(2/2) AAS
typescriptでjest使ってる人っています?
行番号がめちゃくちゃになっちゃうんですが、どうすればいいんですかね?
inlinesoucrmap: trueにセットしても改善せず。
行番号以外は上手く動いてるんですけどね。
798: 2017/07/30(日)23:55 ID:W7NHR4pI(1) AAS
es2015とかes2017はどうかな?
async await使えるの幸せ。
799
(1): 2017/08/03(木)14:06 ID:GUb8aQei(1) AAS
さすが俺達のTypeScript

TypeScripts Type System is Turing Complete
外部リンク:github.com
800: 2017/08/03(木)19:19 ID:WxFDmNeE(1) AAS
>>799
ジェネリグスだけでプログラミングできるってこと?
わけわかめ
801: 2017/08/04(金)00:27 ID:LmyTNXHn(1) AAS
ようやくHTML+CSSに追いついたわけだな
外部リンク[html]:cpplover.blogspot.com
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とほぼ一致する。
1-
あと 151 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.041s