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:ynMflk1l603デフォルトの名無しさん
2017/04/13(木) 00:44:07.45ID:7ydi5nIB 変数の型の参照なんて初歩の初歩なんだが教えてやるまい
604デフォルトの名無しさん
2017/04/13(木) 01:00:49.62ID:IFJ42qsr605デフォルトの名無しさん
2017/04/13(木) 01:13:36.05ID:rVYtPk7E const STR = "str";
type STRT = "str";
const ABC3: STRT=STR;
"str"を2回書かずにABC3が作れればそれでいいんだけど。
type STRT = "str";
const ABC3: STRT=STR;
"str"を2回書かずにABC3が作れればそれでいいんだけど。
606デフォルトの名無しさん
2017/04/13(木) 01:20:51.05ID:IFJ42qsr607デフォルトの名無しさん
2017/04/13(木) 06:09:08.50ID:32cPtkAw type STRT = typeof STR
608デフォルトの名無しさん
2017/04/13(木) 08:01:19.65ID:rVYtPk7E すまん、確かに思い違いしていたようだ。ありがとう。
609デフォルトの名無しさん
2017/04/13(木) 13:00:24.68ID:XE18llYI 恥ずかしか
610デフォルトの名無しさん
2017/04/13(木) 20:33:25.78ID:IFJ42qsr 認めて謝って感謝してるだけ立派だよ
611デフォルトの名無しさん
2017/04/16(日) 20:56:40.61ID:nOhMz2bP TypeScriptでExpressを使う場合について教えてください。
express-generatorなどのサンプルコードだと new Error したオブジェクトにstatusを
突っ込んで返していたりしますが、ここ、TypeScript的にはどうするのが普通でしょう?
みなさん自前でErrorのサブクラスを定義しているんでしょうか?あるいはどこかに
定番のものがあったりするんでしょうか?
express-generatorなどのサンプルコードだと new Error したオブジェクトにstatusを
突っ込んで返していたりしますが、ここ、TypeScript的にはどうするのが普通でしょう?
みなさん自前でErrorのサブクラスを定義しているんでしょうか?あるいはどこかに
定番のものがあったりするんでしょうか?
612デフォルトの名無しさん
2017/04/16(日) 22:51:14.41ID:SqhlDt4o 「どうでもいい」が普通じゃない?
そんなもんエラーハンドラで受けて適当にトレースとエラーメッセージ出したら終わりなんだから
型なんぞ要らん
手段と目的を履き違えるな
そんなもんエラーハンドラで受けて適当にトレースとエラーメッセージ出したら終わりなんだから
型なんぞ要らん
手段と目的を履き違えるな
613デフォルトの名無しさん
2017/04/16(日) 23:30:20.32ID:R4TJTEcK614デフォルトの名無しさん
2017/04/17(月) 00:09:50.93ID:CyuLkfZA そういうもんですかね?
エラーを表示するだけとは言ってもstatusは正しくセットしなきゃならないわけで、
TypeScriptを使う以上そこも型安全にやりたいってのは自然だと思うんですが。
そこだけtslintの警告をネグるのも気持ち悪いし。
エラーを表示するだけとは言ってもstatusは正しくセットしなきゃならないわけで、
TypeScriptを使う以上そこも型安全にやりたいってのは自然だと思うんですが。
そこだけtslintの警告をネグるのも気持ち悪いし。
615デフォルトの名無しさん
2017/04/17(月) 00:24:52.52ID:GVmJ+xSa アプリケーションの仕様としてエラー用のクラスを定義します。Errorのサブクラスだったり新規に自前のクラスを用意するかはケースバイケース。
当然途中で変わることもあり得ます。その際はきちんと他のメンバーと情報共有します。
当然途中で変わることもあり得ます。その際はきちんと他のメンバーと情報共有します。
616デフォルトの名無しさん
2017/04/17(月) 07:32:40.57ID:k0Nquy2H 自分は簡単なアプリではHttpErrorみたいなクラスを定義して使ってる。
もっと複雑なアプリだと、業務エラーのコードとHTTPのエラーコードで
もう一階層作ったりもするけど。
だが、これが推奨なやり方なのかは分からん。俺も知りたい。
もっと複雑なアプリだと、業務エラーのコードとHTTPのエラーコードで
もう一階層作ったりもするけど。
だが、これが推奨なやり方なのかは分からん。俺も知りたい。
617デフォルトの名無しさん
2017/04/17(月) 08:40:01.39ID:CyuLkfZA ありがとうございます。
statusというプロパティにステータスを返すのは決まっているんだからどこかに
出来合いのものがあるかと思ったんですが、やっぱり自前なんですね。
statusというプロパティにステータスを返すのは決まっているんだからどこかに
出来合いのものがあるかと思ったんですが、やっぱり自前なんですね。
618デフォルトの名無しさん
2017/04/20(木) 11:26:28.02ID:T7Zz78Cb npm linkを駆使してtypescriptでビジネスロジックを外部モジュールにしてるんだけど
tsc -wで自動コンパイルはできるんだけど
定義ファイルも同時に生成するコマンドオプションってないかな?
tsc -wで自動コンパイルはできるんだけど
定義ファイルも同時に生成するコマンドオプションってないかな?
619デフォルトの名無しさん
2017/04/20(木) 11:42:22.36ID:T7Zz78Cb >>618
すんません -w -dですね。ホント申し訳ない
すんません -w -dですね。ホント申し訳ない
620デフォルトの名無しさん
2017/04/21(金) 21:22:59.73ID:Uj6lwvRH TypeScriptで動的なキャストみたいなことってできるんでしょうか?
// どこかで定義されたclass
class X {}
interface AX extends X {
a: string;
}
func(x: X) {
if ( xが a: string というプロパティを持っていれば ) {
// ここではxをAXとして扱いたい
}
}
// どこかで定義されたclass
class X {}
interface AX extends X {
a: string;
}
func(x: X) {
if ( xが a: string というプロパティを持っていれば ) {
// ここではxをAXとして扱いたい
}
}
621デフォルトの名無しさん
2017/04/22(土) 00:25:56.48ID:NysYFg8M622デフォルトの名無しさん
2017/04/22(土) 10:55:16.81ID:scznilxz >>621
ありがとうございました。うまくいきました。
ありがとうございました。うまくいきました。
623デフォルトの名無しさん
2017/04/26(水) 12:25:16.92ID:mOputr8e f8appのコード読んでんだけど
flowって驚くほどtypeScriptと似てるね。
んでReduxのアクションな書き方が参考になる。
type ParseObject = Object;
export type Action =
{ type: 'LOADED_ABOUT', list: Array<ParseObject> }
| { type: 'LOADED_NOTIFICATIONS', list: Array<ParseObject> }
| { type: 'LOADED_MAPS', list: Array<ParseObject> }
コレ普通にtypeScriptでも使えた。
interface宣言だとこういう書き方できなけどtype宣言だとできんのね。
flowって驚くほどtypeScriptと似てるね。
んでReduxのアクションな書き方が参考になる。
type ParseObject = Object;
export type Action =
{ type: 'LOADED_ABOUT', list: Array<ParseObject> }
| { type: 'LOADED_NOTIFICATIONS', list: Array<ParseObject> }
| { type: 'LOADED_MAPS', list: Array<ParseObject> }
コレ普通にtypeScriptでも使えた。
interface宣言だとこういう書き方できなけどtype宣言だとできんのね。
624デフォルトの名無しさん
2017/04/27(木) 14:10:54.61ID:2oprloyo いやーTypeScriptって本当にいいものですよね
恥ずかしいソース書いてもコンパイルすればそれなりの形になってますし
全ソースが1つにまとまったjsファイルを見るとカタルシスを覚えます
javascriptを扱うのに最高の言語です
恥ずかしいソース書いてもコンパイルすればそれなりの形になってますし
全ソースが1つにまとまったjsファイルを見るとカタルシスを覚えます
javascriptを扱うのに最高の言語です
625デフォルトの名無しさん
2017/04/27(木) 16:28:37.55ID:a+4IBLmk 開発用と納品用でコードわけられるとかありがたい
626デフォルトの名無しさん
2017/04/27(木) 17:45:10.06ID:/9P4GBtP minifyが出来なくて悩んでおります。
Targetをes5にしてもエラーが出る。
Targetをes5にしてもエラーが出る。
627デフォルトの名無しさん
2017/04/28(金) 08:31:59.89ID:IMlkcp1b >>626
結局該当箇所っぽいところの構造を変えて解決した
case 'Text':
{
let text: Text;
/* ごちゃごちゃした処理*/
text = {
type: 'Text',
value: node.value,
cache: nodeCache
};
return text;
}
ってなってるところで
なぜがtextという変数がminifyで消えずに残っていてエラーになっていたところ
case 'Text':
{
// let text: Text; <―削除
/* ごちゃごちゃした処理*/
let text:Text = {
type: 'Text',
value: node.value,
cache: nodeCache
};
return text;
}
ってしたら治った。
結局該当箇所っぽいところの構造を変えて解決した
case 'Text':
{
let text: Text;
/* ごちゃごちゃした処理*/
text = {
type: 'Text',
value: node.value,
cache: nodeCache
};
return text;
}
ってなってるところで
なぜがtextという変数がminifyで消えずに残っていてエラーになっていたところ
case 'Text':
{
// let text: Text; <―削除
/* ごちゃごちゃした処理*/
let text:Text = {
type: 'Text',
value: node.value,
cache: nodeCache
};
return text;
}
ってしたら治った。
628デフォルトの名無しさん
2017/04/28(金) 09:00:40.63ID:IMlkcp1b すいませんminifyの件ですが一番の問題は
外部ライブラリとして別にパッケージを作ってnpm linkしていたんですが
その外部ライブラリのtsconfigの設定でtargetをes2015にしていたのが原因のようです。
npm上で公開してるライブラリってes2015のものとes5のものが混ざってるんですかね?もしそうならminifyのとき問題でそう。
そろそろブラウザもes2015に対応してきたし外部ライブラリもes2015でいいんじゃないかと思いましたがまだまだes5のほうがいいんですかねー
外部ライブラリとして別にパッケージを作ってnpm linkしていたんですが
その外部ライブラリのtsconfigの設定でtargetをes2015にしていたのが原因のようです。
npm上で公開してるライブラリってes2015のものとes5のものが混ざってるんですかね?もしそうならminifyのとき問題でそう。
そろそろブラウザもes2015に対応してきたし外部ライブラリもes2015でいいんじゃないかと思いましたがまだまだes5のほうがいいんですかねー
629デフォルトの名無しさん
2017/04/28(金) 15:19:33.29ID:ZmVIrkLy Announcing TypeScript 2.3
https://blogs.msdn.microsoft.com/typescript/2017/04/27/announcing-typescript-2-3/
https://blogs.msdn.microsoft.com/typescript/2017/04/27/announcing-typescript-2-3/
630デフォルトの名無しさん
2017/04/28(金) 21:52:24.09ID:CfPEmNk9 >>628
ちゃんと設定すれば、TypeScriptが変換してくれるんじゃないの?
ちゃんと設定すれば、TypeScriptが変換してくれるんじゃないの?
631デフォルトの名無しさん
2017/04/29(土) 00:20:26.49ID:Ix6JNrOr >>630
targetをes5にしてlibに”dom”と”es2017”を設定したら
ちゃんとminifyもできつつasync await とかobject.assaignとか使えました。
typescriptの問題というよりuglify-jsの問題ってことすね。
targetをes5にしてlibに”dom”と”es2017”を設定したら
ちゃんとminifyもできつつasync await とかobject.assaignとか使えました。
typescriptの問題というよりuglify-jsの問題ってことすね。
632デフォルトの名無しさん
2017/04/29(土) 08:40:51.51ID:fFSdol5k633デフォルトの名無しさん
2017/04/29(土) 09:01:35.78ID:fFSdol5k アンインストールしたらVSでtsファイル開いても識別子の色分けとかインテリセンスが出てこなくなってVSぶっ壊れたわ
再インストールだなこりゃ
再インストールだなこりゃ
634デフォルトの名無しさん
2017/04/29(土) 09:05:24.76ID:fFSdol5k 2.3アンインストール後に再度2.3インストールしてもぶっ壊れたまま
迂闊に入れないほうがいいなこれ
迂闊に入れないほうがいいなこれ
635デフォルトの名無しさん
2017/04/29(土) 14:53:43.74ID:D/W8thCK 馬鹿には無理
636デフォルトの名無しさん
2017/04/30(日) 09:24:14.29ID:V5NYhrdd 不細工ハゲが偉そうに
637デフォルトの名無しさん
2017/04/30(日) 11:46:36.73ID:A3RU6CWl 不細工じゃねーし!
638デフォルトの名無しさん
2017/04/30(日) 12:00:27.54ID:0Jw8BHIT 相対パスでimportしようとすると from ’../../lib/a’ と書くことが多いのですが
..を何とかしようと思いtsconfigでbaseUrlを設定したところ
from ‘lib/a’とかけるようになって素敵だったんですが
生成したjs側で同じように相対パスを使わない方法にできずjs側からimportできなくなりました。
どうすればいいんですかね
..を何とかしようと思いtsconfigでbaseUrlを設定したところ
from ‘lib/a’とかけるようになって素敵だったんですが
生成したjs側で同じように相対パスを使わない方法にできずjs側からimportできなくなりました。
どうすればいいんですかね
639デフォルトの名無しさん
2017/04/30(日) 12:07:35.75ID:VPr4LyhY deployしてみ
640デフォルトの名無しさん
2017/04/30(日) 13:53:10.60ID:bwYTEyCy おい、>>637に突っ込めよ!
641デフォルトの名無しさん
2017/04/30(日) 14:18:46.56ID:uAfPQWLU ハゲに付ける薬なし
642デフォルトの名無しさん
2017/05/01(月) 13:56:45.49ID:1hc/XS6U jsonのデシリアライズ等で得られた任意のオブジェクトが指定のinterfaceに適合するかどうか
簡単に判定する方法ってないでしょうか?
実行コストがかかるのはしょうがないので、npmのライブラリでもあれば助かります。
簡単に判定する方法ってないでしょうか?
実行コストがかかるのはしょうがないので、npmのライブラリでもあれば助かります。
643デフォルトの名無しさん
2017/05/01(月) 14:12:45.68ID:y6q+iQAV 実行時に型情報は取得できないので無理
644デフォルトの名無しさん
2017/05/01(月) 14:56:45.23ID:dX7m944z >>642
俺は各interfaceの定義にtypeを入れてる。
俺は各interfaceの定義にtypeを入れてる。
645デフォルトの名無しさん
2017/05/01(月) 15:43:26.17ID:FD8bdV22 >>642
あーなるほどtypesciptのinterface要件を満たしてるかチェックするライブラリかー。
interfaceに対するメタプログラミングができる仕組みってtypescript側に用意されてんのかな
あーなるほどtypesciptのinterface要件を満たしてるかチェックするライブラリかー。
interfaceに対するメタプログラミングができる仕組みってtypescript側に用意されてんのかな
646デフォルトの名無しさん
2017/05/01(月) 16:42:03.86ID:y6q+iQAV ランゲージサービスから情報引っ張ってコード生成するまでやればできる
647デフォルトの名無しさん
2017/05/01(月) 18:22:52.40ID:s/VndsAg648デフォルトの名無しさん
2017/05/01(月) 22:27:57.85ID:1hc/XS6U >>643-647
回答ありがとうございます。
外部から入手したany型のオブジェクトに対して、一度型チェックしたらTypeGuardの下で
扱えたら便利だと思ったんですが、そう単純なものはなさそうですね。
interface毎にUser-Defined Type Guard Functionてのを用意するのが今のところ
いちばんシンプルですかね。
回答ありがとうございます。
外部から入手したany型のオブジェクトに対して、一度型チェックしたらTypeGuardの下で
扱えたら便利だと思ったんですが、そう単純なものはなさそうですね。
interface毎にUser-Defined Type Guard Functionてのを用意するのが今のところ
いちばんシンプルですかね。
649デフォルトの名無しさん
2017/05/01(月) 23:04:54.13ID:FD8bdV22650デフォルトの名無しさん
2017/05/02(火) 00:15:01.17ID:79+IkLPk JSON限定でいいならJSON Schema生成するだけじゃね
651デフォルトの名無しさん
2017/05/05(金) 00:50:33.95ID:oXL5lOIH webpackでtypescript使う時にts-loaderがtypeRootsオプションを認識してくれないような。
自作の定義ファイルを読みに行ってくれない。
結局nodes_modules/@types/においたらうごくんだけど。なんだかなぁ
自作の定義ファイルを読みに行ってくれない。
結局nodes_modules/@types/においたらうごくんだけど。なんだかなぁ
652デフォルトの名無しさん
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;
}
こういう関係が正しい関係では?
■ このスレッドは過去ログ倉庫に格納されています
ニュース