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/
TypeScript part2 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2015/04/30(木) 18:37:29.98ID:ynMflk1l652デフォルトの名無しさん
2017/05/05(金) 10:24:07.07ID:E/UcmmKD -g
653デフォルトの名無しさん
2017/05/07(日) 12:47:49.44ID:tRHTfDHo redux のreducer書く時型付きじゃないと死ぬ。
素のjsでよく書ける人いるなぁ
素のjsでよく書ける人いるなぁ
654デフォルトの名無しさん
2017/05/10(水) 22:53:30.65ID:TahTqR8d655デフォルトの名無しさん
2017/05/11(木) 06:23:41.84ID:6GcWGmCe JSON Schemaの方が表現力がずっと高いから、
実用的に意味があるのは後者だろうね
型だけなら全部空文字と0とfalseでもいいんだから
実用的に意味があるのは後者だろうね
型だけなら全部空文字と0とfalseでもいいんだから
656デフォルトの名無しさん
2017/05/11(木) 06:40:52.39ID:Uo4oHcSP JSON Schemaからのdts生成は既存のツールがいくつかあるみたいだな
逆はバリデーションとしてはほぼ無意味かと
逆はバリデーションとしてはほぼ無意味かと
657デフォルトの名無しさん
2017/05/11(木) 21:37:19.65ID:Foo76VTo 目的が上で書いているようにシリアライズ-デシリアライズされたオブジェクトの型の復元なら、
interface定義を自分で書いてschemaは裏方というのが自然だとは思うが。
ただ、schemaを生成する方のツールは技術的にハードルが高いせいか選択肢があまりないな。
interface定義を自分で書いてschemaは裏方というのが自然だとは思うが。
ただ、schemaを生成する方のツールは技術的にハードルが高いせいか選択肢があまりないな。
658デフォルトの名無しさん
2017/05/15(月) 21:27:32.04ID:ZdTGw5ha そもそもシリアライズという発想自体がJavaScript的でないと思うけどね
データスキーマから入るのがJSでしょ
データスキーマから入るのがJSでしょ
659デフォルトの名無しさん
2017/05/15(月) 22:43:08.64ID:JDFIgPdx シリアライズってJSONのこと言ってるわけだろ。
言語自体にサポートの無いC++などと比べてもよっぽど馴染みがあると思うが。
で、JavaScriptだとそこまででいいんだけど、TypeScriptで型まで戻すにはどうするか?って話だろ。
言語自体にサポートの無いC++などと比べてもよっぽど馴染みがあると思うが。
で、JavaScriptだとそこまででいいんだけど、TypeScriptで型まで戻すにはどうするか?って話だろ。
660デフォルトの名無しさん
2017/05/15(月) 23:00:01.30ID:ZdTGw5ha バリデーションとシリアライズが別系統なのは煩雑じゃない?
コードだけで全部定義するならアノテーション使うなりしてJSON Schema相当の表現力は欲しいし、
割り切って別にするならシリアライズ系の方は中途半端なバリデーションなんかいっそ無しにて
ノーチェックでいいと思うよ
コードだけで全部定義するならアノテーション使うなりしてJSON Schema相当の表現力は欲しいし、
割り切って別にするならシリアライズ系の方は中途半端なバリデーションなんかいっそ無しにて
ノーチェックでいいと思うよ
661デフォルトの名無しさん
2017/05/15(月) 23:16:34.01ID:JDFIgPdx うん、上から目線で何か言いたいという気持ちだけは伝わった。
662デフォルトの名無しさん
2017/05/15(月) 23:59:53.11ID:5dbS9yKw http://stackoverflow.com/questions/33800497/check-if-an-object-implements-an-interface-at-runtime-with-typescript
Yesの回答にそれっぽいコードがあるが本当に動作するのか疑問。
他はSchemaを使う回答だが、よほどでないと大袈裟な気も。
Yesの回答にそれっぽいコードがあるが本当に動作するのか疑問。
他はSchemaを使う回答だが、よほどでないと大袈裟な気も。
663デフォルトの名無しさん
2017/05/16(火) 00:46:18.76ID:6a8gh5yc 自分でコンパイラ拡張して実装したみたいだけどこういうの本家の更新についてけずに陳腐化するのが常だから使えない
ついでにビルドツールなどのエコシステムも使えない
ついでにビルドツールなどのエコシステムも使えない
664デフォルトの名無しさん
2017/05/16(火) 07:36:06.00ID:MR0lnxJG 正攻法だとanyを受け取って目的の型のオブジェクトにして返す関数を用意することになるんだろうが、
やることは同じようなものなのにそれぞれ型ごとに個別に用意しなければならないのが煩雑だな。
よっぽど重要な型でしかやりたくない感じ。
確かにこれが、型ガードの感覚で気軽に使えるようになったら便利だと思うけど。
やることは同じようなものなのにそれぞれ型ごとに個別に用意しなければならないのが煩雑だな。
よっぽど重要な型でしかやりたくない感じ。
確かにこれが、型ガードの感覚で気軽に使えるようになったら便利だと思うけど。
665デフォルトの名無しさん
2017/05/16(火) 08:02:09.48ID:64KrDfHK TypeScriptの思想的にもスキーマありきで型は後付けの方が自然だと思うわ
666デフォルトの名無しさん
2017/05/16(火) 08:27:24.80ID:MR0lnxJG その「スキーマ」が何を指しているかよくわからんな。
まさか「JSON schemaありき」って言いたいわけじゃないだろうが。
まさか「JSON schemaありき」って言いたいわけじゃないだろうが。
667デフォルトの名無しさん
2017/05/16(火) 09:01:29.19ID:64KrDfHK668デフォルトの名無しさん
2017/05/16(火) 10:11:34.64ID:Jgr59aIg objectを先に設計してstringifyの方が一般的だと思うが。
つまりtsなら型が先。
つまりtsなら型が先。
669デフォルトの名無しさん
2017/05/16(火) 13:21:49.91ID:xkpWN83w jsonに対するinterface適用にわざわざスキーマ使うのはだるいな。
やはりメンバにtypeとかを事前に追加しておいて、そこを見てキャストさせるほうが楽だわ。もちろんそのjson自体が自分で改変可能である必要はあるが。
やはりメンバにtypeとかを事前に追加しておいて、そこを見てキャストさせるほうが楽だわ。もちろんそのjson自体が自分で改変可能である必要はあるが。
670デフォルトの名無しさん
2017/05/16(火) 13:49:23.26ID:6a8gh5yc 言語がサポートしてるのはその使い方だからな
671デフォルトの名無しさん
2017/05/16(火) 14:24:04.58ID:KRJlMJox TypeScript ⇔ JSONSchema を相互に変換するコードは既に転がってるから
どちらでも好みで原本にすれば良いんじゃないの?
まぁあまり自動化を頑張っても、構造が複雑になると結局手書きが必要になる分野だとは思うけど
どちらでも好みで原本にすれば良いんじゃないの?
まぁあまり自動化を頑張っても、構造が複雑になると結局手書きが必要になる分野だとは思うけど
672デフォルトの名無しさん
2017/05/16(火) 14:48:54.41ID:64KrDfHK 型で記述しきれないバリデーションについてはDecoratorsを使うのがベストなんだろうけど、
interfaceには使えないんだよな
まあJSONだけならそれでもいいかもしれないが
interfaceには使えないんだよな
まあJSONだけならそれでもいいかもしれないが
673デフォルトの名無しさん
2017/05/16(火) 15:28:34.19ID:6a8gh5yc リリースノートも見ずにオレオレソリューションひねり出すのやめない?
https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#tagged-union-types
https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#tagged-union-types
674デフォルトの名無しさん
2017/05/16(火) 15:33:13.80ID:4P1sgrCm interfaceがトランスパイル後に消滅しちゃうの辛いよな。
言語機能でいい感じに残す機能つけてほしいが、そういう提案ってないの?
最近ついたというプラグインで可能になる?
言語機能でいい感じに残す機能つけてほしいが、そういう提案ってないの?
最近ついたというプラグインで可能になる?
675デフォルトの名無しさん
2017/05/16(火) 15:42:38.42ID:6a8gh5yc >>662で公式で却下されたと書いてある
まあESの仕様壊すし残当
まあESの仕様壊すし残当
676デフォルトの名無しさん
2017/05/16(火) 15:48:01.77ID:KRJlMJox677デフォルトの名無しさん
2017/05/16(火) 16:10:10.21ID:6a8gh5yc いや関数に隠蔽すれば壊すまではいかんか
>>676
入力データの検査も値レベルの制約も手でやること
型システムに求めることじゃない
型を信じてノーチェックが型安全でありそうでなければオーバーヘッドで死ぬ
本人もタイプガードで満足してるしそれが正解
>>676
入力データの検査も値レベルの制約も手でやること
型システムに求めることじゃない
型を信じてノーチェックが型安全でありそうでなければオーバーヘッドで死ぬ
本人もタイプガードで満足してるしそれが正解
678デフォルトの名無しさん
2017/05/16(火) 17:11:36.85ID:rTo/YyDO >>675
まぁESの仕様+型だけだから学習コストが低いってのはあるしね。 でも直感的にinterface定義が消えちゃうのはなんだかなぁって気はする。
こうなったらES側に頑張ってもらうしかないな。パターンマッチング付けてー
まぁESの仕様+型だけだから学習コストが低いってのはあるしね。 でも直感的にinterface定義が消えちゃうのはなんだかなぁって気はする。
こうなったらES側に頑張ってもらうしかないな。パターンマッチング付けてー
679デフォルトの名無しさん
2017/05/29(月) 18:33:36.63ID:DGY6L2yw >>651
コレが解決した。
悩んでいつつも暫定対処で乗り切ってただけに小骨が喉に刺さっているような気分でしたわ。
結論としてはtypeRootsオプションは/// <reference types=".." />
を使う時のpath解決でしか使わないって。
ハンドブックをどう読んでもそう書いているように見えない。
コレが解決した。
悩んでいつつも暫定対処で乗り切ってただけに小骨が喉に刺さっているような気分でしたわ。
結論としてはtypeRootsオプションは/// <reference types=".." />
を使う時のpath解決でしか使わないって。
ハンドブックをどう読んでもそう書いているように見えない。
680デフォルトの名無しさん
2017/06/02(金) 03:21:08.54ID:0selKGQ0 typescriptでimmutablejs使ってるけどいまいち恩恵を得づらい。
updateInとかパスが補完効いたり出来ればいいのに
updateInとかパスが補完効いたり出来ればいいのに
681デフォルトの名無しさん
2017/06/02(金) 08:57:46.98ID:vyfZNbsR thisを変数に入れたいときの変数名ってみんな何してる?
_thisが使えればいいんだけどなー
_thisが使えればいいんだけどなー
682デフォルトの名無しさん
2017/06/02(金) 09:08:17.58ID:Ef+/+PyI 変数に入れた後のthisはthisなんですか・・・・?
683デフォルトの名無しさん
2017/06/02(金) 09:09:32.94ID:lCCVb2h3 thatだがそもそもそんなこと必要にならない
684デフォルトの名無しさん
2017/06/02(金) 09:20:29.61ID:8OnrstJc JavaScriptのクロージャにおけるthis問題の回避はselfが定番
TypeScriptで必要なケースは少ないはずだけど
TypeScriptで必要なケースは少ないはずだけど
685デフォルトの名無しさん
2017/06/02(金) 09:43:18.53ID:LceXbV2F >>681
_thisはダメなの?
_thisはダメなの?
686デフォルトの名無しさん
2017/06/02(金) 10:31:35.82ID:QxLZOlf9 _thisは重複エラーになっちゃうんでやすよね
目的としては、deferredを返すfunctionがあって、その返り値のdoneで呼び元のthisを使いたいんです
目的としては、deferredを返すfunctionがあって、その返り値のdoneで呼び元のthisを使いたいんです
687デフォルトの名無しさん
2017/06/02(金) 11:16:51.90ID:Ef+/+PyI やりたいことが分からん
コード例plz
コード例plz
688デフォルトの名無しさん
2017/06/02(金) 11:38:44.20ID:lCCVb2h3 アロー関数で済むやつでは
689デフォルトの名無しさん
2017/06/02(金) 12:13:45.27ID:QxLZOlf9 >>687
var testFucntion = () => {
var defer = $.Deferred();
defer.resolve("a");
return defer.promise();
}
var hoge: string;
testFucntion()
.done(function (data: string) {
this.hoge(data);
})
こんな感じ
var testFucntion = () => {
var defer = $.Deferred();
defer.resolve("a");
return defer.promise();
}
var hoge: string;
testFucntion()
.done(function (data: string) {
this.hoge(data);
})
こんな感じ
690デフォルトの名無しさん
2017/06/02(金) 12:15:24.11ID:Ef+/+PyI691デフォルトの名無しさん
2017/06/02(金) 12:17:24.53ID:lCCVb2h3 草www
692デフォルトの名無しさん
2017/06/02(金) 12:20:14.11ID:jbvcqQ/c 自演乙としか
693デフォルトの名無しさん
2017/06/02(金) 23:52:05.01ID:7H2+/kur functionが自然な場所は、アローにしてて、
アローで解決できる箇所はfunctionなのはなぜ。
アローで解決できる箇所はfunctionなのはなぜ。
694デフォルトの名無しさん
2017/06/03(土) 02:14:50.79ID:QIr3+kxI >>689
doneのほうをアロー式にしたらいいんやで
あとvsで開発してる場合、デバッグ時にウォッチしたとき、そのthisにはtestFucntionが入るけど
実際にはちゃんと使いたい値が入ってるから安心しな
doneのほうをアロー式にしたらいいんやで
あとvsで開発してる場合、デバッグ時にウォッチしたとき、そのthisにはtestFucntionが入るけど
実際にはちゃんと使いたい値が入ってるから安心しな
695デフォルトの名無しさん
2017/06/03(土) 09:18:06.31ID:bm3mvh5f アロー使えばselfいらないって知った時感動した
696デフォルトの名無しさん
2017/06/04(日) 01:06:25.77ID:ioiT3hTG Angular(2以降)の話題もここでよろしょうございますか?
697デフォルトの名無しさん
2017/06/04(日) 02:05:52.05ID:fuFkI60h まったくではないが違うんじゃないか?
698デフォルトの名無しさん
2017/06/04(日) 05:58:20.77ID:xlmC5HkR699デフォルトの名無しさん
2017/06/11(日) 19:15:01.32ID:AskXGu9A interface A{
x:string;
y:string;
}
interface B extends A{
x:number;
}
が型の互換性エラーになるの何とかならない?
let a={x:'hoge',y:'foo'};
let b={...a,{x:1}};
みたいな事は出来るのにbを現す型を簡単に定義出来ないのが辛い
x:string;
y:string;
}
interface B extends A{
x:number;
}
が型の互換性エラーになるの何とかならない?
let a={x:'hoge',y:'foo'};
let b={...a,{x:1}};
みたいな事は出来るのにbを現す型を簡単に定義出来ないのが辛い
700デフォルトの名無しさん
2017/06/11(日) 19:18:40.94ID:AskXGu9A >>696
ngxのスレは別にある
ngxのスレは別にある
701デフォルトの名無しさん
2017/06/11(日) 19:55:36.52ID:AskXGu9A702デフォルトの名無しさん
2017/06/11(日) 20:29:27.66ID:zURolSWc >>699
型が変わったら継承できないのは当たり前では?
interface Parent {
x: string | number;
y: string;
}
interface A extends Parent {
x: string;
}
interface B extends Parent {
x: number;
}
こういう関係が正しい関係では?
型が変わったら継承できないのは当たり前では?
interface Parent {
x: string | number;
y: string;
}
interface A extends Parent {
x: string;
}
interface B extends Parent {
x: number;
}
こういう関係が正しい関係では?
703デフォルトの名無しさん
2017/06/11(日) 21:09:00.82ID:y28miZDE 理解してない奴を炙り出すのにも静的チェックは必要なんやなって
704デフォルトの名無しさん
2017/06/11(日) 21:21:16.05ID:QZNztTAY >>702
プロパティだとセットのときを考えるとcontravariantじゃないとダメだしゲットのときにはcovariantじゃないとダメだから結局invariantが必要になるような気がする
アクセサならsetのパラメタとgetの返却値で型が異なってもいいから問題ないと思うけど
プロパティだとセットのときを考えるとcontravariantじゃないとダメだしゲットのときにはcovariantじゃないとダメだから結局invariantが必要になるような気がする
アクセサならsetのパラメタとgetの返却値で型が異なってもいいから問題ないと思うけど
705デフォルトの名無しさん
2017/06/11(日) 22:09:32.03ID:AskXGu9A706デフォルトの名無しさん
2017/06/11(日) 22:13:08.61ID:QZNztTAY >>705
ジェネリクスあるし上書きする構文が必要になる状況が分からん
ジェネリクスあるし上書きする構文が必要になる状況が分からん
707デフォルトの名無しさん
2017/06/11(日) 22:22:11.45ID:eD+QASKK 上書きなんぞせずとも別の名前付ければよくね?
デメリットしか思い付かないし実装されないと思うが、仮に実装されたとしても予想される実装方法はBの型を通してアクセスしたときは型名とかをprefix付けた別名になるようにトランスパイルされるようになるだけでしょ
デメリットしか思い付かないし実装されないと思うが、仮に実装されたとしても予想される実装方法はBの型を通してアクセスしたときは型名とかをprefix付けた別名になるようにトランスパイルされるようになるだけでしょ
708デフォルトの名無しさん
2017/06/11(日) 23:47:19.06ID:fVYgJSKO extends Aじゃないけどその定義を流用してBを定義したいということか?
709デフォルトの名無しさん
2017/06/11(日) 23:48:25.17ID:AskXGu9A >>708
そういう事
そういう事
710デフォルトの名無しさん
2017/06/11(日) 23:49:49.29ID:AskXGu9A B extends Aじゃないから当然
(hoge:B)=>{
let foo:A=hoge;
}
みたいな事は出来なくて良い(というか出来ない)
(hoge:B)=>{
let foo:A=hoge;
}
みたいな事は出来なくて良い(というか出来ない)
711デフォルトの名無しさん
2017/06/12(月) 00:58:34.90ID:F6aJQHtJ 継承じゃないんだから諦めてジェネリクス使いなよ
712デフォルトの名無しさん
2017/06/12(月) 08:01:38.24ID:9hAA1jJ7 世の中にxがstringかnumberの場合があるのなら、x: string | number という定義が正しい気がしますが
713デフォルトの名無しさん
2017/06/12(月) 08:11:52.28ID:R1uj6Z8h ジェネリクスだと>>699の問題がどこまで解決できるんだろう。
714デフォルトの名無しさん
2017/06/12(月) 08:26:45.30ID:vVucOmau >>713
interface X<T> {
x: T;
y: string;
}
interface A extends X<string> { }
interface B extends X<number> { }
interface X<T> {
x: T;
y: string;
}
interface A extends X<string> { }
interface B extends X<number> { }
715デフォルトの名無しさん
2017/06/12(月) 18:05:51.91ID:i2S9/2aT flowとtypescriptって
どっちが良いの?
どっちが良いの?
716デフォルトの名無しさん
2017/06/12(月) 18:14:08.97ID:/bUB16QZ717デフォルトの名無しさん
2017/06/12(月) 21:00:25.44ID:5UNDPLtW 酔うの早すぎるだろ
718デフォルトの名無しさん
2017/06/13(火) 22:10:43.81ID:PMWJJsvl Announcing TypeScript 2.4 RC
https://blogs.msdn.microsoft.com/typescript/2017/06/12/announcing-typescript-2-4-rc/
https://blogs.msdn.microsoft.com/typescript/2017/06/12/announcing-typescript-2-4-rc/
719デフォルトの名無しさん
2017/06/14(水) 08:28:34.92ID:TtxDPC/b enumってstring literal型出てからほぼ使わなくなったからなあ
コード内でimportできるのもよくわからん
何がよくなったんだ
コード内でimportできるのもよくわからん
何がよくなったんだ
720デフォルトの名無しさん
2017/06/14(水) 09:04:40.52ID:t483F9YG 新importは関数であることに意味がある
721デフォルトの名無しさん
2017/06/14(水) 21:28:45.57ID:YgZhsY+k >>720
なるほど Promiseで返すってことはasync await 前提なんかな。
ちょっと非同期周りで互換性のないライブラリ使ってると途端に不便になるから
一長一短ではあるんだけど。全部がPromise使うライブラリで固められれば便利になるんかな。
なるほど Promiseで返すってことはasync await 前提なんかな。
ちょっと非同期周りで互換性のないライブラリ使ってると途端に不便になるから
一長一短ではあるんだけど。全部がPromise使うライブラリで固められれば便利になるんかな。
722デフォルトの名無しさん
2017/06/14(水) 21:29:54.91ID:YgZhsY+k jsの仕様変更そろそろ収まって欲しい。
import周りってこれで安定するようになるのかな。
import周りってこれで安定するようになるのかな。
723デフォルトの名無しさん
2017/06/15(木) 19:20:45.69ID:Zba3QY3O filterの中でasync await って使えないんですかね?
724デフォルトの名無しさん
2017/06/15(木) 19:24:11.68ID:xqojsLNP725デフォルトの名無しさん
2017/06/15(木) 21:25:19.64ID:Zba3QY3O filterの評価関数を作ろうとした時に、今まで作ったやつが全部プロミス返す設計になっていたので、
シームレスに使おうとしたらasync-awaitを使えないかなーと。
将来的にここもasync await使えるようになるのかな。
結局ループを回して絞込処理を実装しましたわ。
シームレスに使おうとしたらasync-awaitを使えないかなーと。
将来的にここもasync await使えるようになるのかな。
結局ループを回して絞込処理を実装しましたわ。
726デフォルトの名無しさん
2017/06/15(木) 21:30:12.69ID:xqojsLNP rxjs使え
727デフォルトの名無しさん
2017/06/15(木) 21:32:03.12ID:xqojsLNP それか自作。そんなに難しくないぞ
728デフォルトの名無しさん
2017/06/16(金) 01:22:09.50ID:uNQVqIhb rx推しが謎すぎる。
729デフォルトの名無しさん
2017/06/16(金) 07:51:13.34ID:VSZ6CfqO ループでawaitしちゃうってパフォーマンス悪くない?
await promise.all([].map(async () => {}))
こういうのが普通では?
await promise.all([].map(async () => {}))
こういうのが普通では?
730デフォルトの名無しさん
2017/06/16(金) 12:37:39.06ID:uNQVqIhb >>729
ずっとpromise.allの存在を失念してた。
これでmap的な使い方できるね。
ところでtypescriptのプロジェクトで自作helperライブラリを使う時にいちいちimportを使うのが面倒くさいんで
自動でimportする設定ってtsconfigにないかな?
ずっとpromise.allの存在を失念してた。
これでmap的な使い方できるね。
ところでtypescriptのプロジェクトで自作helperライブラリを使う時にいちいちimportを使うのが面倒くさいんで
自動でimportする設定ってtsconfigにないかな?
731デフォルトの名無しさん
2017/06/17(土) 10:56:23.79ID:254ieyWi typescript便利だけどやっぱり型が後付の弊害がなかなかしんどい。
nullを許容しない前提かと思って使っても結局
実体はnullが突っ込んであったり する。
nullを許容しない前提かと思って使っても結局
実体はnullが突っ込んであったり する。
732デフォルトの名無しさん
2017/06/17(土) 17:32:41.06ID:Jhwo6DZg 弊害じゃなくて人為的ミス
誤りに気付いた者が正せばいい
誤りに気付いた者が正せばいい
733デフォルトの名無しさん
2017/06/17(土) 22:27:47.68ID:254ieyWi swaggerのジェネレーターが出すコードなんだよね。プルリク出すのが面倒です
734デフォルトの名無しさん
2017/06/18(日) 00:50:13.20ID:GScuub4f サーバーサイドの言語仕様とswaggerがstrict null checkに対応してないだけであって
typescriptは何も悪くないのでは
typescriptは何も悪くないのでは
735デフォルトの名無しさん
2017/06/18(日) 15:17:38.51ID:xPH4G83l ほんそれ
736デフォルトの名無しさん
2017/06/18(日) 20:34:02.75ID:9Ms8Oqe4 >>734
本体がstrict null check対応しても
モジュール側が対応してないとそこは無視するってことです?
例えばモジュールが強制的に T | undefined | null 型になるとかならいいんですけどね
本体がstrict null check対応しても
モジュール側が対応してないとそこは無視するってことです?
例えばモジュールが強制的に T | undefined | null 型になるとかならいいんですけどね
737デフォルトの名無しさん
2017/06/19(月) 00:15:28.42ID:2IBzsU2g type Action =
{
type: “A”,
id: number
} |
{
type: “B”,
payload: any
} ….
みたいな定義がある時に
interface ALias {
[type: Action.type]: () => any;
}
export default <Alias> {
“A”: func1,
“B”: func2,
}
みたいに書けないですかね?
つまりAction.typeをinterface の条件に入れたいってことなんですが。
{
type: “A”,
id: number
} |
{
type: “B”,
payload: any
} ….
みたいな定義がある時に
interface ALias {
[type: Action.type]: () => any;
}
export default <Alias> {
“A”: func1,
“B”: func2,
}
みたいに書けないですかね?
つまりAction.typeをinterface の条件に入れたいってことなんですが。
738デフォルトの名無しさん
2017/06/19(月) 09:56:19.65ID:nrLP7Uu1 インデックスシグネチャがstringかnumberしか受け入れない現状では
Aliasを定義する時点でキー(Action.typeの値)が
分かってるなら interface Alias { 'A'?: Func; 'B'?: Func; }
分からないなら interface Alias { [type: string]: Func; }
Aliasを定義する時点でキー(Action.typeの値)が
分かってるなら interface Alias { 'A'?: Func; 'B'?: Func; }
分からないなら interface Alias { [type: string]: Func; }
739デフォルトの名無しさん
2017/06/19(月) 20:30:47.90ID:8qDOjcU2 >>730
interface Actions {
A: {id: number};
B: {payload: any}
}
interface Arias {[key in keyof Actions]: () => Actions[key]}
こういうことかな?
interface Actions {
A: {id: number};
B: {payload: any}
}
interface Arias {[key in keyof Actions]: () => Actions[key]}
こういうことかな?
740デフォルトの名無しさん
2017/06/19(月) 21:29:43.40ID:GKod7M3S 携帯から書いたけどエラー起きてるし意図理解できてなかった。
こういうことかな?
type Action = { type: "A" } | {type: "B"};
type Arias = {[K in Action["type"]]: () => void}
http://i.imgur.com/17xtAlw.png
こういうことかな?
type Action = { type: "A" } | {type: "B"};
type Arias = {[K in Action["type"]]: () => void}
http://i.imgur.com/17xtAlw.png
741デフォルトの名無しさん
2017/06/19(月) 22:19:36.13ID:p+TikfUB Arias(笑)
742デフォルトの名無しさん
2017/06/20(火) 16:14:46.75ID:Nl8VP77v743デフォルトの名無しさん
2017/06/21(水) 12:13:37.61ID:qahQSwg3744デフォルトの名無しさん
2017/06/21(水) 14:47:30.10ID:CAzvCkNY >>743
定義ファイルがなくて自作するハメになると途端に苦痛になるけどな。
あとReactというかReduxつかってて合わせてimmutable.js使ってると
いつの間にかclassがjsonに変わってることがあってその場合はtypescriptの型と合わなくなるから
しんどい。型が後付じゃない言語ならこういうことがないから、ちょっと辛い。
結局reducer内で使う時にjsonからimmuatblejsのclassに変換して
state返す時にjsonに戻す処理を毎回入れる方針になった。
immutable.jsは全然typescriptと相性が良くない。
XXX.set(‘member’, value) みたいな構文になるから。
もっとtypescriptで使いやすいimmutableなライブラリないかしら。
定義ファイルがなくて自作するハメになると途端に苦痛になるけどな。
あとReactというかReduxつかってて合わせてimmutable.js使ってると
いつの間にかclassがjsonに変わってることがあってその場合はtypescriptの型と合わなくなるから
しんどい。型が後付じゃない言語ならこういうことがないから、ちょっと辛い。
結局reducer内で使う時にjsonからimmuatblejsのclassに変換して
state返す時にjsonに戻す処理を毎回入れる方針になった。
immutable.jsは全然typescriptと相性が良くない。
XXX.set(‘member’, value) みたいな構文になるから。
もっとtypescriptで使いやすいimmutableなライブラリないかしら。
745デフォルトの名無しさん
2017/06/21(水) 16:08:20.66ID:QjjhDd/n746デフォルトの名無しさん
2017/06/21(水) 19:23:40.28ID:CAzvCkNY747デフォルトの名無しさん
2017/06/21(水) 21:09:26.65ID:nUhsZ0ik >>746
ブラウザのセキュリティ設定で、`input.click()`はfileエレメントには効かないみたいですね。
https://stackoverflow.com/questions/210643/in-javascript-can-i-make-a-click-event-fire-programmatically-for-a-file-input
ブラウザのセキュリティ設定で、`input.click()`はfileエレメントには効かないみたいですね。
https://stackoverflow.com/questions/210643/in-javascript-can-i-make-a-click-event-fire-programmatically-for-a-file-input
748デフォルトの名無しさん
2017/06/21(水) 21:50:59.59ID:nUhsZ0ik >>744
immutablejsというのは使ったことないけど、
XXX.set(‘member’, value)みたいな処理もkeyof使ってラップしてあげればkey毎に違う型のvalueに対応できる。
例えばES6のMap<K,V>クラスをラップすれば以下みたいなこともできる。
まあ新しいバージョンで対応されるならわざわざラップクラス作る必要ないがw
class TypeSafeMap...(省略
interface IObject {
name: string;
height: number;
isYes: boolean;
}
const safeMap = new TypeSafeMap<IObject>();
safeMap.get("name") // string型
safeMap.get("height") // number型
safeMap.set("name", 1) // NG
safeMap.set("name", "one") // OK
https://goo.gl/j6hy4T
immutablejsというのは使ったことないけど、
XXX.set(‘member’, value)みたいな処理もkeyof使ってラップしてあげればkey毎に違う型のvalueに対応できる。
例えばES6のMap<K,V>クラスをラップすれば以下みたいなこともできる。
まあ新しいバージョンで対応されるならわざわざラップクラス作る必要ないがw
class TypeSafeMap...(省略
interface IObject {
name: string;
height: number;
isYes: boolean;
}
const safeMap = new TypeSafeMap<IObject>();
safeMap.get("name") // string型
safeMap.get("height") // number型
safeMap.set("name", 1) // NG
safeMap.set("name", "one") // OK
https://goo.gl/j6hy4T
749デフォルトの名無しさん
2017/06/21(水) 22:49:52.97ID:CAzvCkNY750デフォルトの名無しさん
2017/06/22(木) 00:17:25.62ID:u6z6+xvR >>749
それはよかったです、てっきりclickイベントをjsで発火させてファイル選択ダイアログを自動で開かせたいのか思ったw
それはよかったです、てっきりclickイベントをjsで発火させてファイル選択ダイアログを自動で開かせたいのか思ったw
751デフォルトの名無しさん
2017/06/22(木) 17:18:45.24ID:77+4f1XL >>750
そうなんですけどリスナーのイベント指定がclickではなくchnageだったってことです。
https://goo.gl/QHZCsG
before
i.addEventListener(‘click’, async (e) => {
after
i.addEventListener('change', async (e) => {
そうなんですけどリスナーのイベント指定がclickではなくchnageだったってことです。
https://goo.gl/QHZCsG
before
i.addEventListener(‘click’, async (e) => {
after
i.addEventListener('change', async (e) => {
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 石井ちゃんです!
- 職場の俺のあだ名がブロリーなんだが
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- お前らは“スカイマイルタワー”建設計画を知っているか?
- これ誰か分かるか?
- 万引きJC「すいません許してください!何でもしますから!」←どうする?
