X



TypeScript part2 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
0770デフォルトの名無しさん
垢版 |
2017/06/28(水) 03:33:15.38ID:4SuBLGV6
マイクロソフトはvsc出したときはなんでatomの二番煎じやってんのって思ったけどやはり製品としての完成度高くて感動する。
開発環境作らせたら最強と言う噂は伊達じゃない。
0773デフォルトの名無しさん
垢版 |
2017/06/28(水) 16:15:00.25ID:7uiFkJf0
MSは言語と開発環境では最強
ネットや機械学習ならGoogle
アップルは…嫌い
0775デフォルトの名無しさん
垢版 |
2017/06/28(水) 16:28:12.57ID:7uiFkJf0
>>774
何こいつ怖い
0776デフォルトの名無しさん
垢版 |
2017/06/29(木) 16:13:29.70ID:f9ij8X2q
すいません。

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

export type Action =
{
type: 'FETCH_MAIN_FEEDS';
} |
{
type: 'SET_MAIN_FFEDS';
payload: comm.Contentlist;
} |
{
type: 'DO_NOTHING'
};



ジェスリクスの仕組みを使って
type ActionType = 'FETCH_MAIN_FEEDS' | 'SET_MAIN_FFEDS' | 'DO_NOTHING'
をActionの内容変更に合わせて自動的に作る方法ってないですかね
0777デフォルトの名無しさん
垢版 |
2017/06/29(木) 16:20:59.60ID:f9ij8X2q
自己解決
export type Action =
{
type: 'FETCH_MAIN_FEEDS';
payload: undefined;
} |
{
type: 'SET_MAIN_FFEDS';
payload: comm.Contentlist;
} |
{
type: 'DO_NOTHING';
payload: undefined;
};

type ActionType = Action['type'];
type PayloadType = Action['payload'];


思いの外簡単であった
0778デフォルトの名無しさん
垢版 |
2017/07/10(月) 13:26:30.50ID:gqDySAuG
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>'.

ってでて、何のことかわからない。

偶然解決して、総合するとReact.Componet<P,S>のSをvoidに指定は駄目ってことらしい。
上記エラーメッセージからどう読み取ればそういうことなわけ?
0780デフォルトの名無しさん
垢版 |
2017/07/12(水) 20:52:57.67ID:iKt9vtZC
@typesやパッケージ自身が持っているd.tsに問題があるとき、自分のプロジェクト内で
部分的に修正版と差し替えたりできないのかな?
Typescript2.4に上げたらいくつかのパッケージがエラーを出すようになってしまったんで
大元が対応するまでの間ちょっと回避したいんだが。
0782デフォルトの名無しさん
垢版 |
2017/07/12(水) 22:50:59.04ID:iKt9vtZC
リンク先のそれは解決法として正しいのかという疑問はあるがとりあえず、declareで
定義を上書きできるということかな。試してみるわ。ありがとう。
0783デフォルトの名無しさん
垢版 |
2017/07/13(木) 12:11:08.28ID:SeGC5rTL
ここでredux-observale薦めてもらったのもあって試してるんだけど
epicを書く時 action$.ofType('FIRST’)って書いてfilterするのはいいんだけど返ってくる
Observaleがtype:’FIRST’に絞り込められてくれない。
無理やりキャストして使えってこと?
いい方法教えてください
0784デフォルトの名無しさん
垢版 |
2017/07/14(金) 00:10:59.94ID:UTvPeefr
VS2017は2015と違ってJavaScriptで
var a = {};
a.b = 1;
と書いてその下に「a.」と入力しても候補にnumber型プロパティとしてのbはない
TypeScriptのnamespaceがブラウザの生JavaScriptでも使えるようになったら便利そうなんだけどな
0785デフォルトの名無しさん
垢版 |
2017/07/14(金) 15:42:06.74ID:AYnLv9ir
>>782
いやいや。具体的に指摘してほしいな。
reduxのactionは基本的にobjectであれば何でもあり。というスタンスのもので
そのactionに継承関係を設定してるのはたまたま定義ファイルの作者がなんとなく決めた程度のものでしかない。

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

更にいうとreduxのmiddlewareの定義ファイルも、結構declareで大元のreudxの定義を改変してる。
(redux-thunkとかredux-promiseとか)
0786デフォルトの名無しさん
垢版 |
2017/07/14(金) 22:07:24.48ID:Ukk3qL4L
「具体的に」と言っている当人が具体的にに何を指摘しているのかわからない件
0787デフォルトの名無しさん
垢版 |
2017/07/17(月) 02:22:25.78ID:HJdOjxBV
モジュール拡張書いてる人っていますか?
ローカルではうまく書けるんだけど、
npmで管理して外部モジュール化しようとするとうまく動かなくなる。
jsとd.tsに別れるとだめなんだろうか、、、、。
なんか参考になるnpmライブラリが有るなら事に教えてくださいm(_ _)m
0788デフォルトの名無しさん
垢版 |
2017/07/17(月) 09:24:35.44ID:3rVoB3WX
>>787
jsとd.tsを同じ所に置けばおk
angularとか参考になるよ
0789デフォルトの名無しさん
垢版 |
2017/07/17(月) 12:07:57.24ID:HJdOjxBV
>>788
ありがとうざいます。js とd.tsは同じ場所においてます、、、、
ちょっとangularはわからなかったのですが
rxjs5はoperatorをモジュール拡張の仕組みを使っているので参考になりました。
それを元に書いてるんですが、、、
どうしてもうまくいかないです。
0790デフォルトの名無しさん
垢版 |
2017/07/17(月) 12:30:35.11ID:3rVoB3WX
>>789
npm rxjsした時のフォルダ構成とビルド結果が同じようにすればおk
もちろんパッケージ.jspnとかもな
0791デフォルトの名無しさん
垢版 |
2017/07/20(木) 13:43:30.16ID:9ngnJ+y5
typescriptってユーザー数多そうなのに
どこに生息してるん?
teratailもあんまりいなさそうだし。slackとかかね?
おせーてください
0794デフォルトの名無しさん
垢版 |
2017/07/20(木) 17:31:24.01ID:YwOQZRBC
>>791
TypeScriptはほぼJSだから他の言語と違って特に質問するような事ないし…
0795デフォルトの名無しさん
垢版 |
2017/07/20(木) 20:56:24.88ID:9ngnJ+y5
>>794
定義ファイル周りとか結構悩むことない?
例えばreduxとかそのまま使うとTypeScriptの補完機能を活かしきれなくて
typescript-fsaとかを使って補強してやると凄く調子良く動く。
0797デフォルトの名無しさん
垢版 |
2017/07/28(金) 21:08:46.09ID:O7VztC89
typescriptでjest使ってる人っています?
行番号がめちゃくちゃになっちゃうんですが、どうすればいいんですかね?
inlinesoucrmap: trueにセットしても改善せず。
行番号以外は上手く動いてるんですけどね。
0802デフォルトの名無しさん
垢版 |
2017/08/12(土) 11:10:59.59ID:3DdLvbHE
tsconfig.json で noImplicitAny をtrueにしてみたら、npmからのモジュールをimportしている部分で
こういうエラーが大量に出るようになってしまった。

error TS7016: Could not find a declaration file for module 'モジュール名'.

importをrequireに戻したら逆に不便だし、自分で .d.ts を用意するには数が多すぎて追いつかない。
noImplicitAny の対象を自分のコードのみに限定する(node_modules以下を対象外とする)
なんてことはできないんだろうか。
0804デフォルトの名無しさん
垢版 |
2017/08/12(土) 11:38:02.30ID:DE4QKP9/
あと使ってるライブラリも。ライブラリによって違うのかな?
俺はreduxとかreactとかmoment.jsとかimmutable.jsとか色々入れてるけど
特にそういう不具合が起きたことはないな。
多分デフォルトでtsconfigの中身はnode_modules対象外な気がする。

一応聞くけどwebpack使ってないよね?
0805デフォルトの名無しさん
垢版 |
2017/08/12(土) 11:51:37.20ID:3DdLvbHE
このへんのモジュールが引っ掛かった。全部じゃないけど。

react-spin
cookie-parser
uuid-parse

>一応聞くけどwebpack使ってないよね?

そう、webpack使ってる。

module: {
rules: [
{
exclude: /(node_modules)/,
test: /\.[jt]s$/,
use: [ { loader: 'ts-loader', options: { configFileName: "tsconfig.json", } } ]
}
]
},

tsconfig.json はこんな感じ。
{
"compilerOptions": {
"module": "commonjs",
"target": "es6", "allowJs": true, "strictNullChecks": false,
"noImplicitAny": false, "noImplicitThis": true, "noImplicitReturns": true, "sourceMap": true
},

"exclude": [ "node_modules" ]
}

excludeの設定を間違えているのかな?
0806デフォルトの名無しさん
垢版 |
2017/08/12(土) 15:39:16.07ID:DE4QKP9/
なんだ、全部のd.tsが見つからないって言ってるわけじゃないなら、node_modules関係なくない?
足りないd.tsファイルは自作するしかないでしょ。インストールしたのに見つからないなら問題だけど
0807デフォルトの名無しさん
垢版 |
2017/08/12(土) 15:56:35.18ID:DE4QKP9/
webpackのresolveが抜けてるんじゃない?

resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx'],
modules: [
"node_modules/"
]
},
0808デフォルトの名無しさん
垢版 |
2017/08/12(土) 16:09:16.06ID:DE4QKP9/
>react-spin
あとreact-spinは型定義にないみたいね。でもこれくらいなら五分で自作できるから大丈夫。
0809デフォルトの名無しさん
垢版 |
2017/08/12(土) 18:30:45.13ID:3DdLvbHE
>>806
noImplicitAny = false なら .d.ts が無くても使えていたんで何か方法はないかと思ったけど、
無いならしょうがないね。ありがとう。
0813デフォルトの名無しさん
垢版 |
2017/08/13(日) 21:25:13.43ID:LJmg41iW
(new Error()).stack みたく 実行箇所のtsファイル名と行番号を取得する方法ってないですかね。
プリプロセッサみたくコンパイルする過程でファイル名と行番号に変換するような定数があればいいんですけど
0814デフォルトの名無しさん
垢版 |
2017/08/15(火) 09:46:45.08ID:yLrj+bDi
o : any が"x"というメンバーを持っているか調べるのは if ("x" in o) でできるけど、
o.x の型がstringかどうか調べようと if (typeof o["x"] === "string") とやるとESlintの
no-string-literalに引っかかってしまう。
このルールを無効にする以外にメンバーの型をチェックする方法ってないですかね?
0816デフォルトの名無しさん
垢版 |
2017/08/15(火) 14:30:58.84ID:Yyv6Foyi
>>814
一旦変数に入れてからアクセスすればいいんじゃない

const x = "x";
if (typeof o[x] === "string") { ...
0817デフォルトの名無しさん
垢版 |
2017/08/15(火) 15:31:46.37ID:yLrj+bDi
>>816
なるほど、そんな方法が。うまくいったみたい。ありがとう。
使う直前で変数に入れるならdisableにするのとさほど変わらないけど、メンバー名はどこかで
一元管理しておけってことかな。
0818デフォルトの名無しさん
垢版 |
2017/08/15(火) 17:11:17.08ID:tN8D0FqC
>>817
単に変数oにinterface定義してあげればいいだけでは。
そもそもtslintじゃなくてeslint使っているという状況もよくわからない
0819デフォルトの名無しさん
垢版 |
2017/08/15(火) 17:54:36.31ID:yLrj+bDi
あぁ、eslintって書いたのはtslintの間違い。

>単に変数oにinterface定義してあげればいいだけでは。

ネットワークやファイル経由のjsonとか、型情報が落とされたオブジェクトからの復元なんで。
0820デフォルトの名無しさん
垢版 |
2017/08/15(火) 23:34:39.69ID:Yyv6Foyi
>>818
いや静的型チェックと実行時型チェックをごっちゃにしちゃダメでしょ
TypeScriptは静的型チェックを提供するものなんだから実行時型チェックにinterfaceなんて持ち出す道理がない
0822デフォルトの名無しさん
垢版 |
2017/08/22(火) 22:13:44.37ID:/ptFhj0b
TSの環境の開発の旗振りって誰?
いつになったら開発環境が安定するの?

webの情報のほとんどが古くて使えない
0825デフォルトの名無しさん
垢版 |
2017/08/23(水) 13:23:34.59ID:YtvD4LeH
TypeScriptの実装じゃなくて環境の方だろ?
型定義ファイルもTypingsとか@typesとかいろいろ変遷してきたし
0826デフォルトの名無しさん
垢版 |
2017/08/23(水) 19:59:00.18ID:KTb6BBkr
TypeScript1.0が出たころ何冊も本が書かれたけど、その後どんどん進化するから誰も手を出さなくなったな。
0827デフォルトの名無しさん
垢版 |
2017/08/23(水) 20:36:30.14ID:CbozNT9/
進化に関係なく使う人が居て需要があれば本は出される
出されないってことは・・そういうことだ
0828デフォルトの名無しさん
垢版 |
2017/08/25(金) 02:06:21.27ID:+9ilYHDI
ジェネリクスで教えてほしいことがあるんですが
型がundefinedかそうでないかで処理分岐をしたいんですがどうすればいいでしょうか

https://goo.gl/L6wazS

上記のようなコードはジェネリクスだとPはコンパイル時に解決されるものだからダメですよね。
じゃあどうすればいいんでしょうか。
もちろん引数にpayload:P みたいなのがあればtypeGaurdが使えるんですけど、それがない場合は?
0829デフォルトの名無しさん
垢版 |
2017/08/25(金) 07:45:31.16ID:HjHZR7Zb
試してないけど、Pのローカル変数を置いてみるのは?
初期化できないとダメかな。
0831デフォルトの名無しさん
垢版 |
2017/08/25(金) 12:42:23.60ID:ai11peC4
型がundefinedって言うのは違うのでは?

変数がundefinedならわかるけど考え方の次元が違う気がする

Add<undefined>(item);ってありえないだろ
0835デフォルトの名無しさん
垢版 |
2017/08/27(日) 13:34:52.17ID:0P4eY3kj
>>829
だめでしたわ。やはり最終的に生成されるjsコードが型がないからなにもないところに型を定義するのは無理っぽい
ジェネリクスって使う側には幸せだけどライブラリを作ろうって思うとなかなか難しいす。

実は以下のコードが小さくて見やすいので改造できないか試しているんです。
https://github.com/aikoven/typescript-fsa/blob/master/src/index.ts

store.dispatch(someAction()) というように同期型のアクションを作るときはパラメータ引数無しで使えるんだけど
非同期アクションを使おうとした場合はパラメータ引数なしの表現ができないんですよ。

store.dispatch(someAsyncAction.started(undefined)) と書かなきゃけない。
ここのundefinedを省略する方法を探っていたんですよね。
0838デフォルトの名無しさん
垢版 |
2017/08/27(日) 14:17:00.38ID:iBnNI7N6
引数にPが含まれていない以上呼び出し時の型パラメータはハードコーディングしなきゃならんわけで、
それならOnlyH用の関数と分けてしまっても大して変わらんだろう。処理自体は共通化すればいいし。
0841デフォルトの名無しさん
垢版 |
2017/08/27(日) 17:42:23.47ID:0P4eY3kj
>>838
もちろんそれならできることは確認してますが、それだったら引数にundefined
許容したほうがいいかなーと。

ジェネリクスは知らないことが色々ありそうなんでもしかしたら解決方法があればと想ったんですが、、、、
typescriptの進化を待ちます、、、。

>>840
c++だとできるんですか。
どう書くのか知りたいです
0842デフォルトの名無しさん
垢版 |
2017/08/27(日) 21:19:13.07ID:wLayuApT
>>841
何というかC++のテンプレートは強力過ぎる
Boost::Spiritみたいにコンパイル時に構文解析器を生成するような変態的なことさえ可能
ただしコンパイル時間は死ぬ

ttps://ideone.com/6V11EP

C++っぽくないコードだけどとりあえず
0843デフォルトの名無しさん
垢版 |
2017/08/27(日) 21:38:06.45ID:0P4eY3kj
>>842
わ、わかんないです。c++昔使ったことがあるから分かるかと思ったら全然わからなかったという。
でも、ありがとうございました。
0844デフォルトの名無しさん
垢版 |
2017/08/28(月) 18:40:12.12ID:g1F8jR1j
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,
は指定しています。

何か足りないのでしょうか?
0845デフォルトの名無しさん
垢版 |
2017/08/28(月) 20:16:46.01ID:3Zs55+dM
>>844
実行環境が書いてないから正確にはわからんのだけど
chromeとかブラウザ環境のjsはモジュール管理機構が無いからwebpackとか使わないと直接は実行できない。
0846デフォルトの名無しさん
垢版 |
2017/08/30(水) 15:24:22.43ID:0nj0F5xg
初心者なんだけど質問いいだろうか?

JS使う必要ある→ES5以前気持ち悪い→ES6未対応多い
という流れでTypeScript勉強しようかと思ったんだけど、手元にある本が分かりやすいけど1.0対応なんだ
追加機能を順に追えば問題ないだろうと思ったんだけど、更新箇所が多岐にわたるためか結構面倒で
ある程度網羅してそうなのも1.0からは追ってなかったりして、少し悩んでる

バージョンごとの差分を丁寧にまとめてくれているサイトか、
最新に近いバージョンを網羅的に解説してるサイトを、差分を意識しながら読もうかと思ってるんだけど、
慣れてる者の視点で、なんかいいサイト or 書籍があったら教えてくれないか?
0848デフォルトの名無しさん
垢版 |
2017/08/30(水) 17:14:44.50ID:0nj0F5xg
>>847
ありがとう
公式サイトのドキュメントは「英語でこれだけ読むのはだるい」と回避しちゃってたけど、
確かに差分把握程度なら英語苦手でもなんとかなりそうだし、どうしても分からなければそこだけ別途調べればいいかな……
0849デフォルトの名無しさん
垢版 |
2017/08/30(水) 17:16:57.33ID:0nj0F5xg
>>847
なんか完璧ボケたレスした、すまない
読んで公式確認して〜してる間に2行目が頭から抜け落ちてた

日本語訳あるなら探してみるわ
0850デフォルトの名無しさん
垢版 |
2017/08/30(水) 17:22:11.52ID:t7ExSs7Y
>>846
その用途ならbabel使え
型が欲しい人が使うのがTS
0851デフォルトの名無しさん
垢版 |
2017/08/30(水) 19:16:11.64ID:2eRd6qUC
俺的には初心者こそTypeScriptってカンジがするけどね。
書いてる最中にエラーが出るから曖昧な知識を補填してくれる。
基本的にはES2015 + 型 だからESの仕様を勉強してればそれがTypeScriptとほぼ一致する。
0852デフォルトの名無しさん
垢版 |
2017/08/30(水) 23:22:37.02ID:0nj0F5xg
>>850
型がある方が楽なんで問題ありません。ありがとうございます。
普段よく使うのが C#, Ruby なんで CoffeeScript も見た目や好きなんですけど……。
0853デフォルトの名無しさん
垢版 |
2017/08/31(木) 10:22:17.60ID:J0kol7QQ
俺はもうTSだけのトランスパイルで落ち着いちゃったんだけどBabel通すメリットある?
Symbolない環境でもArrayLikeをfor-ofできるならBabel使うけどそうでもなさそうだし
わざわざビルドを複雑にする理由がない
0858デフォルトの名無しさん
垢版 |
2017/09/01(金) 18:55:40.04ID:/s9HCfxW
やることなくなったんならcommunityに丸投げした大量のバグ修正しろやって感じ
0859デフォルトの名無しさん
垢版 |
2017/09/02(土) 17:49:25.16ID:p+zwcdRJ
プロジェクトの管理者が長期休暇で居なかったからな
今回はバグ修正とリファクタリングが多い
不在の間に溜まってたissueとPRも整理途中って感じだ
0862デフォルトの名無しさん
垢版 |
2017/09/03(日) 16:16:24.17ID:uF0EtmbD
4はパフォーマンス改善が大きい
あとはifとか
もう9月だから5出るぞ
0868デフォルトの名無しさん
垢版 |
2017/09/06(水) 08:52:58.29ID:ZKLFsM4G
https://eow.alc.co.jp/search?q=tldr

TLDR
【略】
=Too long. Didn't read.
長過ぎ。読みませんでした。/長文うざい(と言う人のための要約)。
◆【場面】ネット上などで「文章が長過ぎる」と文句を言う。転じて「長文を嫌う人のための要約」という意味でも用いられる。
0869デフォルトの名無しさん
垢版 |
2017/09/06(水) 18:28:14.77ID:8/JJ3nEQ
○次受けが多いほど退場率が早くなる。高くなる

直受けの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に加入して公表価格で応募できる
0870デフォルトの名無しさん
垢版 |
2017/09/19(火) 11:15:37.37ID:/BmvhpgH
jsbinみたいなやつでautocompleteをサポートしたeditorあるやつないかな。
誰か作って
■ このスレッドは過去ログ倉庫に格納されています

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