[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/16 07:51 / Filesize : 265 KB / Number-of Response : 1047
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

TypeScript part2



1 名前:デフォルトの名無しさん [2015/04/30(木) 18:37:29.98 ID:ynMflk1l.net]
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.

前スレ
peace.2ch.net/test/read.cgi/tech/1349187527/

792 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 16:41:50.61 ID:OCPIhIaN.net]
npm -i @types/XXXX

793 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 17:11:28.11 ID:k1gomwYO.net]
>>758
よくわからないけどelectronのtypescript開発は少しややこしい
メインプロセス側と画面側でプロジェクト分けるのが主流で、メインプロセス側はgulpビルド、画面側はwebpackビルドみたいになって少しややこしい

794 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 19:32:19.06 ID:o1GCb4AX.net]
回答ありがとうございました

もうしばらく待ってみます

795 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 10:42:55.52 ID:B+I0vs4D.net]
>>757
はやっちゃってるんだよなぁ。
React自体は凄くTypeScriptとの親和性は高い。というかむしろ推奨しているくらい。
ただReduxはTypeScriptからどう使えばいいのかよくわからなくて

796 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 15:37:27.06 ID:B+I0vs4D.net]
>>756
自己解決したので書いておきます
ただのロガーの場合

import { Action } from 'actions';
import { State } from 'reducers';

export function myMiddleware(store: redux.MiddlewareAPI<State>):
(next: redux.Dispatch<State>) => redux.Dispatch<State> {
return (next: redux.Dispatch<State>) => (action: Action): Action => {
console.log(store.getState());
let result = next(action);
console.log(store.getState());
return result;
};
}

797 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 16:22:46.76 ID:xkXC4vKS.net]
typescriptで書かれてる有名なライブラリって何があるの?
Rx.jsはtypeScriptで書かれてたね。

798 名前:デフォルトの名無しさん [2017/06/27(火) 16:42:32.21 ID:mpuQzI8/.net]
フレームワークだけどngx

799 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 18:35:39.52 ID:5NUjqPYf.net]
Dartどっかいったな

800 名前:デフォルトの名無しさん [2017/06/27(火) 19:04:32.75 ID:mpuQzI8/.net]
googleが作る言語はゴミばっかだからしゃーない
言語のセンスは圧倒的にMSの方が上
MSというよりヘルスバーグが有能すぎる



801 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 22:13:14.24 ID:xkXC4vKS.net]
>>767
goはいいぞ。素朴でモダンという相反する要素を持ち合わせてる。
エコシステムはモダン。
言語仕様は素朴。

802 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 22:20:02.75 ID:rQeMEWtY.net]
J++とかJ#とかManaged C++とか割と救いようのないものも作ってるけどねMicrosoft
でも全体としては確かに良い言語が多い印象

Googleの言語もGoとか(使ったことないけど)人気みたいだし, そもそも作った言語の数が大分違う気が

803 名前:デフォルトの名無しさん [2017/06/27(火) 23:37:36.64 ID:mpuQzI8/.net]
>>768
ジェネリクス追加されるまでは様子見…

804 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 03:33:15.38 ID:4SuBLGV6.net]
マイクロソフトはvsc出したときはなんでatomの二番煎じやってんのって思ったけどやはり製品としての完成度高くて感動する。
開発環境作らせたら最強と言う噂は伊達じゃない。

805 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 09:12:54.31 ID:9HmGLvwZ.net]
>>764
angular2

806 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:22:19.39 ID:R0ZTQr0d.net]
Announcing TypeScript 2.4
https://blogs.msdn.microsoft.com/typescript/2017/06/27/announcing-typescript-2-4/

807 名前:デフォルトの名無しさん [2017/06/28(水) 16:15:00.25 ID:7uiFkJf0.net]
MSは言語と開発環境では最強
ネットや機械学習ならGoogle
アップルは…嫌い

808 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 16:19:23.04 ID:DxMay05+.net]
MSは言語と開発環境では最強
ネットや機械学習ならGoogle
アップルは…嫌い

809 名前:デフォルトの名無しさん [2017/06/28(水) 16:28:12.57 ID:7uiFkJf0.net]
>>775
何こいつ怖い

810 名前:デフォルトの名無しさん mailto:sage [2017/06/29(木) 16:13:29.70 ID:f9ij8X2q.net]
すいません。

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

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の内容変更に合わせて自動的に作る方法ってないですかね



811 名前:デフォルトの名無しさん mailto:sage [2017/06/29(木) 16:20:59.60 ID:f9ij8X2q.net]
自己解決
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'];


思いの外簡単であった

812 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 13:26:30.50 ID:gqDySAuG.net]
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に指定は駄目ってことらしい。
上記エラーメッセージからどう読み取ればそういうことなわけ?

813 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 19:20:13.57 ID:lPQJaLkK.net]
template登場したての頃のc++みたいだな

814 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 20:52:57.67 ID:iKt9vtZC.net]
@typesやパッケージ自身が持っているd.tsに問題があるとき、自分のプロジェクト内で
部分的に修正版と差し替えたりできないのかな?
Typescript2.4に上げたらいくつかのパッケージがエラーを出すようになってしまったんで
大元が対応するまでの間ちょっと回避したいんだが。

815 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 21:44:01.43 ID:46U9BX05.net]
>>781
https://teratail.com/questions/83920

816 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 22:50:59.04 ID:iKt9vtZC.net]
リンク先のそれは解決法として正しいのかという疑問はあるがとりあえず、declareで
定義を上書きできるということかな。試してみるわ。ありがとう。

817 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 12:11:08.28 ID:SeGC5rTL.net]
ここでredux-observale薦めてもらったのもあって試してるんだけど
epicを書く時 action$.ofType('FIRST’)って書いてfilterするのはいいんだけど返ってくる
Observaleがtype:’FIRST’に絞り込められてくれない。
無理やりキャストして使えってこと?
いい方法教えてください

818 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 00:10:59.94 ID:UTvPeefr.net]
VS2017は2015と違ってJavaScriptで
var a = {};
a.b = 1;
と書いてその下に「a.」と入力しても候補にnumber型プロパティとしてのbはない
TypeScriptのnamespaceがブラウザの生JavaScriptでも使えるようになったら便利そうなんだけどな

819 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 15:42:06.74 ID:AYnLv9ir.net]
>>783
いやいや。具体的に指摘してほしいな。
reduxのactionは基本的にobjectであれば何でもあり。というスタンスのもの

820 名前:
そのactionに継承関係を設定してるのはたまたま定義ファイルの作者がなんとなく決めた程度のものでしかない。

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

更にいうとreduxのmiddlewareの定義ファイルも、結構declareで大元のreudxの定義を改変してる。
(redux-thunkとかredux-promiseとか)
[]
[ここ壊れてます]



821 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 22:07:24.48 ID:Ukk3qL4L.net]
「具体的に」と言っている当人が具体的にに何を指摘しているのかわからない件

822 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 02:22:25.78 ID:HJdOjxBV.net]
モジュール拡張書いてる人っていますか?
ローカルではうまく書けるんだけど、
npmで管理して外部モジュール化しようとするとうまく動かなく

823 名前:ネる。
jsとd.tsに別れるとだめなんだろうか、、、、。
なんか参考になるnpmライブラリが有るなら事に教えてくださいm(_ _)m
[]
[ここ壊れてます]

824 名前:デフォルトの名無しさん [2017/07/17(月) 09:24:35.44 ID:3rVoB3WX.net]
>>788
jsとd.tsを同じ所に置けばおk
angularとか参考になるよ

825 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 12:07:57.24 ID:HJdOjxBV.net]
>>789
ありがとうざいます。js とd.tsは同じ場所においてます、、、、
ちょっとangularはわからなかったのですが
rxjs5はoperatorをモジュール拡張の仕組みを使っているので参考になりました。
それを元に書いてるんですが、、、
どうしてもうまくいかないです。

826 名前:デフォルトの名無しさん [2017/07/17(月) 12:30:35.11 ID:3rVoB3WX.net]
>>790
npm rxjsした時のフォルダ構成とビルド結果が同じようにすればおk
もちろんパッケージ.jspnとかもな

827 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 13:43:30.16 ID:9ngnJ+y5.net]
typescriptってユーザー数多そうなのに
どこに生息してるん?
teratailもあんまりいなさそうだし。slackとかかね?
おせーてください

828 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 15:04:36.06 ID:heFqzBlt.net]
typescript は google 社員御用達だぞ
ここのレスも 99 割が google 社員のもの

829 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 15:14:04.11 ID:9ngnJ+y5.net]
MSとgoogleのマリアージュとか最高じゃないかな。

830 名前:デフォルトの名無しさん [2017/07/20(木) 17:31:24.01.net]
>>792
TypeScriptはほぼJSだから他の言語と違って特に質問するような事ないし…



831 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 20:56:24.88.net]
>>795
定義ファイル周りとか結構悩むことない?
例えばreduxとかそのまま使うとTypeScriptの補完機能を活かしきれなくて
typescript-fsaとかを使って補強してやると凄く調子良く動く。

832 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 10:18:51.65 ID:O7VztC89.net]
https://jp.vuejs.org/v2/guide/typescript.html
vuejsもtypescriptとの親和性上がってるのかな。
昔はいまいちだったんだけど

833 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 21:08:46.09 ID:O7VztC89.net]
typescriptでjest使ってる人っています?
行番号がめちゃくちゃになっちゃうんですが、どうすればいいんですかね?
inlinesoucrmap: trueにセットしても改善せず。
行番号以外は上手く動いてるんですけどね。

834 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 23:55:24.33 ID:W7NHR4pI.net]
es2015とかes2017はどうかな?
async await使えるの幸せ。

835 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 14:06:03.33 ID:GUb8aQei.net]
さすが俺達のTypeScript

TypeScripts Type System is Turing Complete
https://github.com/Microsoft/TypeScript/issues/14833

836 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 19:19:00.00 ID:WxFDmNeE.net]
>>800
ジェネリグスだけでプログラミングできるってこと?
わけわかめ

837 名前:デフォルトの名無しさん mailto:sage [2017/08/04(金) 00:27:45.60 ID:LmyTNXHn.net]
ようやくHTML+CSSに追いついたわけだな
https://cpplover.blogspot.com/2013/10/blog-post_20.html

838 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:10:59.59 ID:3DdLvbHE.net]
tsconfig.json で noImplicitAny をtrueにしてみたら、npmからのモジュールをimportしている部分で
こういうエラーが大量に出るようになってしまった。

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

importをrequireに戻したら逆に不便だし、自分で .d.ts を用意するには数が多すぎて追いつかない。
noImplicitAny の対象を自分のコードのみに限定する(node_modules以下を対象外とする)
なんてことはできないんだろうか。

839 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:34:41.06 ID:DE4QKP9/.net]
>>803
俺は普通に使えてるけどな。tsconfig全体を貼ってみたら?

840 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:38:02.30 ID:DE4QKP9/.net]
あと使ってるライブラリも。ライブラリによって違うのかな?
俺はreduxとかreactとかm



841 名前:oment.jsとかimmutable.jsとか色々入れてるけど
特にそういう不具合が起きたことはないな。
多分デフォルトでtsconfigの中身はnode_modules対象外な気がする。

一応聞くけどwebpack使ってないよね?
[]
[ここ壊れてます]

842 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:51:37.20 ID:3DdLvbHE.net]
このへんのモジュールが引っ掛かった。全部じゃないけど。

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の設定を間違えているのかな?

843 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 15:39:16.07 ID:DE4QKP9/.net]
なんだ、全部のd.tsが見つからないって言ってるわけじゃないなら、node_modules関係なくない?
足りないd.tsファイルは自作するしかないでしょ。インストールしたのに見つからないなら問題だけど

844 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 15:56:35.18 ID:DE4QKP9/.net]
webpackのresolveが抜けてるんじゃない?

resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx'],
modules: [
"node_modules/"
]
},

845 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 16:09:16.06 ID:DE4QKP9/.net]
>react-spin
あとreact-spinは型定義にないみたいね。でもこれくらいなら五分で自作できるから大丈夫。

846 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 18:30:45.13 ID:3DdLvbHE.net]
>>807
noImplicitAny = false なら .d.ts が無くても使えていたんで何か方法はないかと思ったけど、
無いならしょうがないね。ありがとう。

847 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:23:03.92 ID:DE4QKP9/.net]
>>810
いやいや。簡単だから諦めないでよ。特にreact-componentなら簡単に自作できる

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/material-ui-pagination/index.d.ts
これとか参考になると思う

848 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:49:53.59 ID:3DdLvbHE.net]
最初に書いたとおり、単に数が多いからやってられんてだけ。

849 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:58:06.64 ID:DE4QKP9/.net]
>>812
あーなるほど失礼
もともとjs案件だったってこと?

850 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 21:25:13.43 ID:LJmg41iW.net]
(new Error()).stack みたく 実行箇所のtsファイル名と行番号を取得する方法ってないですかね。
プリプロセッサみたくコンパイルする過程でファイル名と行番号に変換するような定数があればいいんですけど



851 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 09:46:45.08 ID:yLrj+bDi.net]
o : any が"x"というメンバーを持っているか調べるのは if ("x" in o) でできるけど、
o.x の型がstringかどうか調べようと if (typeof o["x"] === "string") とやるとESlintの
no-string-literalに引っかかってしまう。
このルールを無効にする以外にメンバーの型をチェックする方法ってないですかね?

852 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 14:18:14.33 ID:tN8D0FqC.net]
>>815
無理 any型を使ってる時点でtsにできることは無い

853 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 14:30:58.84 ID:Yyv6Foyi.net]
>>815
一旦変数に入れてからアクセスすればいいんじゃない

const x = "x";
if (typeof o[x] === "string") { ...

854 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 15:31:46.37 ID:yLrj+bDi.net]
>>817
なるほど、そんな方法が。うまくいったみたい。ありがとう。
使う直前で変数に入れるならdisableにするのとさほど変わらないけど、メンバー名はどこかで
一元管理しておけってことかな。

855 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 17:11:17.08 ID:tN8D0FqC.net]
>>818
単に変数oにinterface定義してあげればいい

856 名前:セけでは。
そもそもtslintじゃなくてeslint使っているという状況もよくわからない
[]
[ここ壊れてます]

857 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 17:54:36.31 ID:yLrj+bDi.net]
あぁ、eslintって書いたのはtslintの間違い。

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

ネットワークやファイル経由のjsonとか、型情報が落とされたオブジェクトからの復元なんで。

858 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 23:34:39.69 ID:Yyv6Foyi.net]
>>819
いや静的型チェックと実行時型チェックをごっちゃにしちゃダメでしょ
TypeScriptは静的型チェックを提供するものなんだから実行時型チェックにinterfaceなんて持ち出す道理がない

859 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 11:02:47.05 ID:wX4L2Jep.net]
>>821
そうだったね。ごめん

860 名前:デフォルトの名無しさん mailto:sage [2017/08/22(火) 22:13:44.37 ID:/ptFhj0b.net]
TSの環境の開発の旗振りって誰?
いつになったら開発環境が安定するの?

webの情報のほとんどが古くて使えない



861 名前:デフォルトの名無しさん mailto:sage [2017/08/22(火) 22:37:14.07 ID:1PU0SC+v.net]
まずVSCodeをインストール
npmでts2.xをインストール
型定義は@types/xxxxxxx

862 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 13:19:39.56 ID:12Hdps1J.net]
msで作ってるから、まずはmsの開発環境試してみればいいんだろうけど、
大元の実装が不安定だったりするの?
https://github.com/Microsoft/TypeScript/wiki/Architectural-Overview

863 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 13:23:34.59 ID:YtvD4LeH.net]
TypeScriptの実装じゃなくて環境の方だろ?
型定義ファイルもTypingsとか@typesとかいろいろ変遷してきたし

864 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 19:59:00.18 ID:KTb6BBkr.net]
TypeScript1.0が出たころ何冊も本が書かれたけど、その後どんどん進化するから誰も手を出さなくなったな。

865 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 20:36:30.14 ID:CbozNT9/.net]
進化に関係なく使う人が居て需要があれば本は出される
出されないってことは・・そういうことだ

866 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 02:06:21.27 ID:+9ilYHDI.net]
ジェネリクスで教えてほしいことがあるんですが
型がundefinedかそうでないかで処理分岐をしたいんですがどうすればいいでしょうか

https://goo.gl/L6wazS

上記のようなコードはジェネリクスだとPはコンパイル時に解決されるものだからダメですよね。
じゃあどうすればいいんでしょうか。
もちろん引数にpayload:P みたいなのがあればtypeGaurdが使えるんですけど、それがない場合は?

867 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 07:45:31.16 ID:HjHZR7Zb.net]
試してないけど、Pのローカル変数を置いてみるのは?
初期化できないとダメかな。

868 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 09:42:23.66 ID:WV+v2bcZ.net]
コンパイル時に型自体の比較が出来ればいいんだけどねぇ

869 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 12:42:23.60 ID:ai11peC4.net]
型がundefinedって言うのは違うのでは?

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

Add<undefined>(item);ってありえないだろ

870 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 18:31:01.83 ID:uvmzLTaY.net]
undefinedの型はundefinedだよ



871 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 21:39:57.29 ID:+9ilYHDI.net]
>>832
undefined型、null型あります

872 名前:デフォルトの名無しさん mailto:sage [2017/08/26(土) 04:59:29.39 ID:FZcG7krL.net]
undefined null void never 使い分け出来てる?

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

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

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

store.dispatch(someAsyncAction.started

874 名前:(undefined)) と書かなきゃけない。
ここのundefinedを省略する方法を探っていたんですよね。
[]
[ここ壊れてます]

875 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 13:49:39.35 ID:0iS30aa2.net]
そもそも何がしたいのかわからないんだけど
引数追加したいけないのか?

876 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 13:55:46.03 ID:0iS30aa2.net]
レス見てなかった
ごめんごめん

877 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 14:17:00.38 ID:iBnNI7N6.net]
引数にPが含まれていない以上呼び出し時の型パラメータはハードコーディングしなきゃならんわけで、
それならOnlyH用の関数と分けてしまっても大して変わらんだろう。処理自体は共通化すればいいし。

878 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 14:23:58.62 ID:0iS30aa2.net]
ところで本当にこれジェネリックの問題?

879 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 14:27:48.95 ID:wLayuApT.net]
C++でならテンプレートの特殊化で書けるし書きたい気持ちはよく分かる

880 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 17:42:23.47 ID:0P4eY3kj.net]
>>839
もちろんそれならできることは確認してますが、それだったら引数にundefined
許容したほうがいいかなーと。

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

>>841
c++だとできるんですか。
どう書くのか知りたいです



881 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 21:19:13.07 ID:wLayuApT.net]
>>842
何というかC++のテンプレートは強力過ぎる
Boost::Spiritみたいにコンパイル時に構文解析器を生成するような変態的なことさえ可能
ただしコンパイル時間は死ぬ

ttps://ideone.com/6V11EP

C++っぽくないコードだけどとりあえず

882 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 21:38:06.45 ID:0P4eY3kj.net]
>>843
わ、わかんないです。c++昔使ったことがあるから分かるかと思ったら全然わからなかったという。
でも、ありがとうございました。

883 名前:デフォルトの名無しさん [2017/08/28(月) 18:40:12.12 ID:g1F8jR1j.net]
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,
は指定しています。

何か足りないのでしょうか?

884 名前:デフォルトの名無しさん mailto:sage [2017/08/28(月) 20:16:46.01 ID:3Zs55+dM.net]
>>845
実行環境が書いてないから正確にはわからんのだけど
chromeとかブラウザ環境のjsはモジュール管理機構が無いからwebpackとか使わないと直接は実行できない。

885 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 15:24:22.43 ID:0nj0F5xg.net]
初心者なんだけど質問いいだろうか?

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

バージョンごとの差分を丁寧にまとめてくれているサイトか、
最新に近いバージョンを網羅的に解説してるサイトを

886 名前:、差分を意識しながら読もうかと思ってるんだけど、
慣れてる者の視点で、なんかいいサイト or 書籍があったら教えてくれないか?
[]
[ここ壊れてます]

887 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 15:36:04.15 ID:KRZoTQ7y.net]
公式のWhat's newがベスト
差分付き公式アナウンスの日本語訳もあったはず

888 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 17:14:44.50 ID:0nj0F5xg.net]
>>848
ありがとう
公式サイトのドキュメントは「英語でこれだけ読むのはだるい」と回避しちゃってたけど、
確かに差分把握程度なら英語苦手でもなんとかなりそうだし、どうしても分からなければそこだけ別途調べればいいかな……

889 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 17:16:57.33 ID:0nj0F5xg.net]
>>848
なんか完璧ボケたレスした、すまない
読んで公式確認して〜してる間に2行目が頭から抜け落ちてた

日本語訳あるなら探してみるわ

890 名前:デフォルトの名無しさん [2017/08/30(水) 17:22:11.52 ID:t7ExSs7Y.net]
>>847
その用途ならbabel使え
型が欲しい人が使うのがTS



891 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 19:16:11.64 ID:2eRd6qUC.net]
俺的には初心者こそTypeScriptってカンジがするけどね。
書いてる最中にエラーが出るから曖昧な知識を補填してくれる。
基本的にはES2015 + 型 だからESの仕様を勉強してればそれがTypeScriptとほぼ一致する。

892 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 23:22:37.02 ID:0nj0F5xg.net]
>>851
型がある方が楽なんで問題ありません。ありがとうございます。
普段よく使うのが C#, Ruby なんで CoffeeScript も見た目や好きなんですけど……。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<265KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef