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
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2015/04/30(木) 18:37:29.98ID:ynMflk1l882デフォルトの名無しさん
2017/10/14(土) 22:19:53.51ID:A+SmlCyw https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#localized-diagnostics-on-the-command-line
typescript 2.6 ローカライズが全面的に入るっぽい
typescript 2.6 ローカライズが全面的に入るっぽい
883デフォルトの名無しさん
2017/10/14(土) 22:27:47.84ID:+JNXgfir 非英語Issueが次々と投げ込まれていくところを想像すると胸が熱くなるな
誰がこういうの決定してんだろ
誰がこういうの決定してんだろ
884デフォルトの名無しさん
2017/10/15(日) 13:45:26.13ID:29cWpLj+ いままで入ってなかったのが不思議
885デフォルトの名無しさん
2017/10/15(日) 21:03:43.86ID:U2nzSUai コマンドラインメッセージが日本語化されるの?いらんだろそれ
886デフォルトの名無しさん
2017/10/15(日) 21:27:06.79ID:nlQ3NzZf ローカライズありがたいけどところどころ明らかな誤訳が混じってる
887デフォルトの名無しさん
2017/10/16(月) 08:15:42.86ID:eZyML9Cw 誤訳を見つけてくれてありがとう
お前のプルリクを待ってるぜ!
お前のプルリクを待ってるぜ!
888デフォルトの名無しさん
2017/10/16(月) 11:31:48.47ID:ZoMoe7Af かえってわかりにくくなる
889デフォルトの名無しさん
2017/10/16(月) 12:12:06.22ID:Z0srHJQs コマンドラインよりhandbookの方を翻訳してほしいよね
890デフォルトの名無しさん
2017/10/17(火) 08:07:20.81ID:ALnPGbmE 2.4.2から2.5.3に上げたら、User defined type-guard functionとTagged union typeの組み合わせで
型をうまく判断してくれなくなった。バグか仕様変更かどっちだろう?
型をうまく判断してくれなくなった。バグか仕様変更かどっちだろう?
891デフォルトの名無しさん
2017/10/17(火) 08:10:24.70ID:1Byit6P4 issueあさりにいけ
892デフォルトの名無しさん
2017/10/18(水) 22:10:52.67ID:wBhwyrKl TypescriptでReact使ってる人にお聞きしたいんですけど
Componentを継承して新しいコンポーネントを作るわけですけど、
class CurrentComponet extends React.Component<Props> {
}
とつくってさらに
class NewComponet extends CurrentComponet {
}
とやってNewComponetをつくるとしますよね。
それはそれで使えるんですけどNewComponetのpropsはCurrentComponetのpropsしか使えないですよね。
PropsをNewComponet用に拡張する方法ってないですかね?
素直に一からComponent作るしかないでしょうか
Componentを継承して新しいコンポーネントを作るわけですけど、
class CurrentComponet extends React.Component<Props> {
}
とつくってさらに
class NewComponet extends CurrentComponet {
}
とやってNewComponetをつくるとしますよね。
それはそれで使えるんですけどNewComponetのpropsはCurrentComponetのpropsしか使えないですよね。
PropsをNewComponet用に拡張する方法ってないですかね?
素直に一からComponent作るしかないでしょうか
893デフォルトの名無しさん
2017/10/18(水) 23:58:41.35ID:5bsiTMSo894デフォルトの名無しさん
2017/10/19(木) 09:09:43.33ID:33xh/nBB >>893
うほー。神よ!
でもぶっちゃけ何が起こってるのかよくわかってないです。
> class CurrentComponet<T extends Props> extends React.Component<T> {
上記Tは一体いつ解決されてるんですかね。
そもそもTypeScriptでReactのコンポーネントの書き方ってこっちが正解だったりするんで?
うほー。神よ!
でもぶっちゃけ何が起こってるのかよくわかってないです。
> class CurrentComponet<T extends Props> extends React.Component<T> {
上記Tは一体いつ解決されてるんですかね。
そもそもTypeScriptでReactのコンポーネントの書き方ってこっちが正解だったりするんで?
895デフォルトの名無しさん
2017/10/19(木) 20:20:28.20ID:LXr9z35K それか
class CurrentComponet<T> extends React.Component<T&Props> {
}
でもいいな
こっちが使う側からすると楽かも
>>894
説明面倒だからggrks
class CurrentComponet<T> extends React.Component<T&Props> {
}
でもいいな
こっちが使う側からすると楽かも
>>894
説明面倒だからggrks
896デフォルトの名無しさん
2017/10/20(金) 00:43:33.60ID:aPV4O3Wb moment.js 便利だな
今更だが
今更だが
897デフォルトの名無しさん
2017/10/21(土) 12:56:00.66ID:VqKLKVGY >>895
単純にReact.d.tsと見比べてみると良い。結局使う時に<Props>を使えるようにCurrentComponet<T> としておくのが目的
ジェネリクス型に追加情報を与えるための概念と考えると分かりやすい。
<T>をTopに残しておいてそこを解決すると React.Component<T>も自動的に追従する
単純にReact.d.tsと見比べてみると良い。結局使う時に<Props>を使えるようにCurrentComponet<T> としておくのが目的
ジェネリクス型に追加情報を与えるための概念と考えると分かりやすい。
<T>をTopに残しておいてそこを解決すると React.Component<T>も自動的に追従する
898デフォルトの名無しさん
2017/10/22(日) 05:02:18.10ID:NdVgkCyx899デフォルトの名無しさん
2017/10/22(日) 05:09:40.65ID:NdVgkCyx2017/10/22(日) 11:51:56.71ID:r0jppfs8
>>899
おっ。そこは知ってたけどTypeScriptのコード補完効くとしらなかったわ。ありがと
おっ。そこは知ってたけどTypeScriptのコード補完効くとしらなかったわ。ありがと
901デフォルトの名無しさん
2017/10/23(月) 21:24:20.12ID:xr09IWoG 地味にawait書き忘れてちゃんと動かないというパターンが多発してるんですが
TSLintでawait入れ漏れで指摘する機能ってないですかね?
TSLintでawait入れ漏れで指摘する機能ってないですかね?
902デフォルトの名無しさん
2017/10/23(月) 23:05:48.01ID:zzY32qse >>901
c#だと書き忘れた場合はコンパイラが警告出してくれるんだけどね
c#だと書き忘れた場合はコンパイラが警告出してくれるんだけどね
903デフォルトの名無しさん
2017/10/30(月) 07:24:42.96ID:I1PPVtSx もう10月終わるけどまた駆け込みリリースかね
904デフォルトの名無しさん
2017/11/01(水) 02:44:19.40ID:x/3omok5 Announcing TypeScript 2.6
https://blogs.msdn.microsoft.com/typescript/2017/10/31/announcing-typescript-2-6/
https://blogs.msdn.microsoft.com/typescript/2017/10/31/announcing-typescript-2-6/
905デフォルトの名無しさん
2017/11/01(水) 23:51:55.80ID:x/3omok5906デフォルトの名無しさん
2017/11/02(木) 12:10:31.71ID:Gd7lD1Ih Angular 5.0.0がリリースされました
https://medium.com/angular-japan-user-group/version-5-0-0-of-angular-now-available-9746ef966c7d
はやい、はやいよぉ…
https://medium.com/angular-japan-user-group/version-5-0-0-of-angular-now-available-9746ef966c7d
はやい、はやいよぉ…
907デフォルトの名無しさん
2017/11/02(木) 20:11:59.50ID:eNK4k+UN ffのアップデート並み
908デフォルトの名無しさん
2017/11/02(木) 22:27:03.79ID:taAN7xor なお間に合わなかったバグフィクスはガンガン後回しにしてリリースする模様
909デフォルトの名無しさん
2017/11/03(金) 03:45:19.14ID:kJ3ZRkrN アジャイルってそういうもんだし
910デフォルトの名無しさん
2017/11/03(金) 05:18:11.47ID:IsjJm0uL >>906
アンギュラーってぶっちゃけ使ってる人いるの?
アンギュラーってぶっちゃけ使ってる人いるの?
911デフォルトの名無しさん
2017/11/03(金) 07:42:27.47ID:gwa0lp/v Google自身が使ってないのにどうして使うというのか
912デフォルトの名無しさん
2017/11/08(水) 20:05:35.96ID:uhXC9xV7913デフォルトの名無しさん
2017/11/12(日) 02:41:12.23ID:EwcJ+uHe 2.6になったらコンパイルエラーが多発する。react-redux のconnect周りで。
なんでー
なんでー
914デフォルトの名無しさん
2017/11/12(日) 13:16:12.66ID:oQrEnmVF MEAN勉強中なのにangulerってマイナーなの?ショック
915デフォルトの名無しさん
2017/11/25(土) 21:21:37.41ID:UiY7gN7d コンストラクタを複数定義できないのでしょうか??
うーん。
うーん。
916デフォルトの名無しさん
2017/11/25(土) 21:28:52.67ID:UiY7gN7d オーバーロードはできるけど、実装は1つとか・・
JSONへのシリアライズ・デシリアライズは自分で制御するので、
constructor(json: any)と
construcotr(parameter1: type1, parameter2: type2)
二つ用意したいんですけど。最初は
construcotr(parameter1: type1, parameter2: type2)だけ用意しえ、
staticメソッドの方に
statis parseJson(json: any): Class1として、そこでconstrucotr(parameter1: type1, parameter2: type2)を呼んでたんですけど、
これだと子に親のインスタンスの参照渡せないんですよね。
JSONへのシリアライズ・デシリアライズは自分で制御するので、
constructor(json: any)と
construcotr(parameter1: type1, parameter2: type2)
二つ用意したいんですけど。最初は
construcotr(parameter1: type1, parameter2: type2)だけ用意しえ、
staticメソッドの方に
statis parseJson(json: any): Class1として、そこでconstrucotr(parameter1: type1, parameter2: type2)を呼んでたんですけど、
これだと子に親のインスタンスの参照渡せないんですよね。
917デフォルトの名無しさん
2017/11/25(土) 21:37:57.59ID:UiY7gN7d ごめんなさい。これじゃ何いってるからんし、意味不明ですね。
918デフォルトの名無しさん
2017/11/26(日) 00:19:08.88ID:mkIW06Zo919デフォルトの名無しさん
2017/11/26(日) 04:33:36.78ID:Aye3R7gH オブジェクト指向を学ぼう
920デフォルトの名無しさん
2017/11/26(日) 23:18:17.65ID:rkyPHH9I 願望なんだけど
Typescriptは言語自体がWebアプリ開発用に
丸ごとフレームワークになったら良いと思う。
Flash(flex)のActionscript3も
フレームワーク化達成した様だし。
http://flex.apache.org/
Typescriptは言語自体がWebアプリ開発用に
丸ごとフレームワークになったら良いと思う。
Flash(flex)のActionscript3も
フレームワーク化達成した様だし。
http://flex.apache.org/
921デフォルトの名無しさん
2017/11/26(日) 23:25:22.11ID:pQh5Iwo2 >>920
JSのスーパーセット目指してるんだし無理に決まってんだろ
JSのスーパーセット目指してるんだし無理に決まってんだろ
922デフォルトの名無しさん
2017/11/26(日) 23:28:03.09ID:rkyPHH9I すみませんリンク先間違ってました。
http://royale.codeoscopic.com/
http://royale.codeoscopic.com/
923デフォルトの名無しさん
2017/11/26(日) 23:33:18.08ID:i1z8rFU6925デフォルトの名無しさん
2017/12/01(金) 19:48:21.81ID:Qr863YVP 人気沸騰中のはずなのに年々参加者が減っていきついにアドカレ作られすらしなくなったTypeScriptさん
926デフォルトの名無しさん
2017/12/01(金) 20:26:25.44ID:6V2me3Iy TypeScript関係ないけど、アドカレVue.jsすげぇな。React人気ないのか??
927デフォルトの名無しさん
2017/12/01(金) 20:32:35.43ID:u+SbUYxr FBのゴタゴタがきいてるんかな
928デフォルトの名無しさん
2017/12/01(金) 22:04:45.62ID:jFvanr8n アドカレ的にはjs扱いなんじゃね?
929デフォルトの名無しさん
2017/12/01(金) 23:41:41.28ID:tkoMYkG1 ES6普及したから
AltJSへの興味が薄れてるんじゃね?
AltJSへの興味が薄れてるんじゃね?
930デフォルトの名無しさん
2017/12/01(金) 23:55:12.47ID:jFvanr8n まだasync await周りが完成してないけどね。
とりあえずmapとかfilterが普通に使えるようになってほしい
とりあえずmapとかfilterが普通に使えるようになってほしい
931デフォルトの名無しさん
2017/12/14(木) 10:19:06.97ID:y5gxd1px stackblitzいいな。マジでplayground系の決定版感ある。
https://stackblitz.com/edit/react-ts
https://stackblitz.com/edit/react-ts
932デフォルトの名無しさん
2017/12/14(木) 16:42:58.78ID:y5gxd1px typeScriptのinterfaceで配列の要素数を制約する方法ってありますかね?
933デフォルトの名無しさん
2017/12/14(木) 19:30:41.65ID:lO2D+k3i >>931
vscodeみてーなUIだな
vscodeみてーなUIだな
934デフォルトの名無しさん
2017/12/14(木) 19:31:21.04ID:lO2D+k3i935デフォルトの名無しさん
2017/12/14(木) 19:43:58.65ID:ZmHWuRBr tupleとして扱う
936デフォルトの名無しさん
2017/12/14(木) 20:36:42.23ID:LW4O1R2X tuple使え
937デフォルトの名無しさん
2017/12/14(木) 22:26:15.12ID:lO2D+k3i もしかして:タプル機能を知らない
let vec:[number,number=[1,1];
let vec:[number,number=[1,1];
938デフォルトの名無しさん
2017/12/14(木) 22:27:31.03ID:lO2D+k3i ミス
let vec:[number,number]=[1,1];
もちろんこれでもOK
type Vec=[number,number];
let vec:Vec=[number,number];
let vec:[number,number]=[1,1];
もちろんこれでもOK
type Vec=[number,number];
let vec:Vec=[number,number];
939デフォルトの名無しさん
2017/12/14(木) 22:29:51.71ID:LW4O1R2X 前にもタプルあるのにタプル欲しい言ってたやついたような
940デフォルトの名無しさん
2017/12/14(木) 23:16:24.01ID:lO2D+k3i https://www.typescriptlang.org/docs/handbook/advanced-types.html
タプルもだけど、このページ読んでない人多くね?
TypeScript語るなら&、|、is、keyofくらいマスターしておけよな
タプルもだけど、このページ読んでない人多くね?
TypeScript語るなら&、|、is、keyofくらいマスターしておけよな
941デフォルトの名無しさん
2017/12/15(金) 00:23:56.02ID:okgNcKTb942デフォルトの名無しさん
2017/12/15(金) 10:29:49.56ID:sajYuSyc (´・ω・`) デコレータがなんの役に立つのかわからん…
943デフォルトの名無しさん
2017/12/15(金) 12:12:33.81ID:ehq3lI3U 一時期使ってみたが全部取っ払って今は一切使ってない
デコレータを使う設計自体が悪い
技術的負債になるワークアラウンドが不運にも市民権を得てしまったのがデコレータ
デコレータを使うのは未熟者の証
デコレータを使う設計自体が悪い
技術的負債になるワークアラウンドが不運にも市民権を得てしまったのがデコレータ
デコレータを使うのは未熟者の証
944デフォルトの名無しさん
2017/12/15(金) 12:39:37.56ID:pWQR70OL veu
945デフォルトの名無しさん
2017/12/15(金) 13:09:01.78ID:VJqK9zii 使ってないけど、デコレータはDI(dependency injection)(依存性の注入)に使うんでしょ?
そもそもそれが必要な事なのか知らんけど
そもそもそれが必要な事なのか知らんけど
946デフォルトの名無しさん
2017/12/15(金) 16:08:57.23ID:ehq3lI3U DIはコンストラクタ注入だけでいい
メソッドだの継承だのデコレータだの無駄に複雑なだけ
メソッドだの継承だのデコレータだの無駄に複雑なだけ
947デフォルトの名無しさん
2017/12/16(土) 11:15:39.58ID:Ab77UDQn Angularもけっこう深い沼だな…
948デフォルトの名無しさん
2017/12/16(土) 22:02:32.48ID:c6/WUVVQ 沼というか泥舟
949デフォルトの名無しさん
2017/12/17(日) 16:05:22.54ID:dnHAQQNy ionic はタイタニックだしな
950デフォルトの名無しさん
2017/12/18(月) 13:13:38.64ID:2IRqztoA あげ
951デフォルトの名無しさん
2018/01/16(火) 20:27:44.97ID:FhxZLFGY interfaceを使ってるとjsonでセーブする時にすごく便利なんだけどメソッドが生やせないのが辛い。
なんとかならないかな
なんとかならないかな
952デフォルトの名無しさん
2018/01/17(水) 16:20:55.33ID:AWcujNq7 手動で保存・復元すればOK
953デフォルトの名無しさん
2018/01/17(水) 16:23:04.93ID:AWcujNq7 まぁ、classレベルならいいけど、interfaceレベルだときついかもしれんが。
954デフォルトの名無しさん
2018/01/18(木) 18:36:14.16ID:c8bYFLwE Announcing TypeScript 2.7 RC
https://blogs.msdn.microsoft.com/typescript/2018/01/17/announcing-typescript-2-7-rc/
毎回RC版出してるけど、VSCodeやTSって更新早いからいらないと思う
https://blogs.msdn.microsoft.com/typescript/2018/01/17/announcing-typescript-2-7-rc/
毎回RC版出してるけど、VSCodeやTSって更新早いからいらないと思う
955デフォルトの名無しさん
2018/01/24(水) 05:53:19.16ID:V1qhcEkf localStorageとかreduxとか使ってると意図せず型変換が入ってtscはDate型の想定なのに実際はstringという状況マジ勘弁してください。
956デフォルトの名無しさん
2018/01/24(水) 08:16:36.90ID:BFkGLEDk >tscはDate型の想定なのに実際はstringという状況
そりゃ不適切な型付けしてしまっただけじゃね?
stringを入る可能性があるanyをDateと決め打ちしたとか。
そりゃ不適切な型付けしてしまっただけじゃね?
stringを入る可能性があるanyをDateと決め打ちしたとか。
957デフォルトの名無しさん
2018/01/25(木) 22:12:47.33ID:cFDHLCLJ DateがJSON serializableじゃないって話でTypeScriptの問題でもない
958デフォルトの名無しさん
2018/01/29(月) 11:43:46.31ID:16WZc9vb インスタンスではなくclass を引数に取った関数を作りたいんですが、良い方法がないでしょうか?
redux.connectをラップする関数を作りたくて上記手段を求めています
サンプルコードはいかにおいています
https://goo.gl/FF5jFc
redux.connectをラップする関数を作りたくて上記手段を求めています
サンプルコードはいかにおいています
https://goo.gl/FF5jFc
959デフォルトの名無しさん
2018/01/29(月) 11:48:46.22ID:16WZc9vb960デフォルトの名無しさん
2018/01/29(月) 14:06:48.67ID:16WZc9vb 返り値とか省略すると推論してくれますけど推論の結果を取得する方法ってないですかね?
vscodeでカーソルを合わせてると出るんですけどカーソル合わせている間しか出ないのでコピペしづらくて。
vscodeでカーソルを合わせてると出るんですけどカーソル合わせている間しか出ないのでコピペしづらくて。
961デフォルトの名無しさん
2018/01/29(月) 16:26:17.34ID:g7co9PB2 >>959
Baseって何を指すの?
Baseって何を指すの?
962デフォルトの名無しさん
2018/01/31(水) 10:23:18.30ID:V9tZNzCA TypeScriptでglobal import的なものってないですかね?
ロガーを作ったんですけど、それを毎回importするのがしんどくて
ロガーを作ったんですけど、それを毎回importするのがしんどくて
963デフォルトの名無しさん
2018/02/01(木) 14:40:42.51ID:ma2l7eSX Announcing TypeScript 2.7
https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/
https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/
964デフォルトの名無しさん
2018/02/05(月) 22:05:36.77ID:wQgqkVj5 >>963
TypeScript 2.7.1 変更点
https://qiita.com/vvakame/items/3a1e628e53a5dd99dfe0
2.8
Conditional types
https://github.com/Microsoft/TypeScript/pull/21316
Type inference in conditional types
https://github.com/Microsoft/TypeScript/pull/21496
TypeScript 2.7.1 変更点
https://qiita.com/vvakame/items/3a1e628e53a5dd99dfe0
2.8
Conditional types
https://github.com/Microsoft/TypeScript/pull/21316
Type inference in conditional types
https://github.com/Microsoft/TypeScript/pull/21496
965デフォルトの名無しさん
2018/02/05(月) 23:37:11.09ID:Rv6TwvHy Conditional types関連は既にmergedなのか
966デフォルトの名無しさん
2018/02/06(火) 05:58:37.68ID:vXstL54C 小躍りしながら使ってみたところ速攻でバグにぶち当たって無事死亡
修正されるまで一回休み
修正されるまで一回休み
967デフォルトの名無しさん
2018/02/13(火) 05:54:42.41ID:kAM/OKSF 型を後付した言語の限界があるよな。
ストレージに一度保存して意図せずjsonになってたり、関数のインターフェース上nullやundefind許容しない設定にしてても結局js側でnullの可能性のある値を渡されたらバグるし。
例えばjsとtsの境界部分。
モジュールとして外出ししている関数とかのインターフェースとかをきちんとnullチェックしてくれるコードを自動で埋め込んでくんないかな。
ストレージに一度保存して意図せずjsonになってたり、関数のインターフェース上nullやundefind許容しない設定にしてても結局js側でnullの可能性のある値を渡されたらバグるし。
例えばjsとtsの境界部分。
モジュールとして外出ししている関数とかのインターフェースとかをきちんとnullチェックしてくれるコードを自動で埋め込んでくんないかな。
968デフォルトの名無しさん
2018/02/13(火) 06:47:09.07ID:a2BGtfue それは信頼できないjsが悪いだけだろ
外部のクソコードはどうにもならん
外部のクソコードはどうにもならん
969デフォルトの名無しさん
2018/02/13(火) 09:13:05.77ID:cOH/iFjL TypeScriptが目指してるのはコンパイル時型チェックであって実行時型チェックではない
コンパイル時型チェックならパフォーマンスに影響はない(処理系によってはむしろ向上する)が実行時型チェックは明確にパフォーマンスが落ちる
PHPなんかは実行時型チェックを実装しちゃったもんだからクラスのメンバに型宣言するRFCすらリジェクトされてる
コンパイル時型チェックならパフォーマンスに影響はない(処理系によってはむしろ向上する)が実行時型チェックは明確にパフォーマンスが落ちる
PHPなんかは実行時型チェックを実装しちゃったもんだからクラスのメンバに型宣言するRFCすらリジェクトされてる
970デフォルトの名無しさん
2018/02/13(火) 15:21:25.94ID:xpZzv5qK >>969
ですよね。それはわかっているんですが、、、、
せめてlint的な感じでjs向けのインターフェースが null| undefinedの可能性があるから直せみたいな警告が出るといいんですけど。
async func 内の await記入漏れと一緒にほしい。
ですよね。それはわかっているんですが、、、、
せめてlint的な感じでjs向けのインターフェースが null| undefinedの可能性があるから直せみたいな警告が出るといいんですけど。
async func 内の await記入漏れと一緒にほしい。
971デフォルトの名無しさん
2018/02/13(火) 15:22:21.77ID:xpZzv5qK972デフォルトの名無しさん
2018/02/13(火) 22:00:08.76ID:XkJQyT0D jsから呼ばれる部分はどうやってもチェックしようがないと思うぞ。
973デフォルトの名無しさん
2018/02/20(火) 18:34:14.34ID:KguAhC0Q yarnのワークスペースを使用して、Create React AppとCreate React Native App (Expo) で共通のコードを共有する
https://taiyaq.com/contents/gk1Kr17x8vW9LIozNo51lez9rr
を参考にしてcreate-react-app でtypescriptプロジェクトを作ったんだけど
ワークスペース内での型情報の共有がうまくいかない。
それぞれ単体では動くんだけど。既に試している人っている?
https://taiyaq.com/contents/gk1Kr17x8vW9LIozNo51lez9rr
を参考にしてcreate-react-app でtypescriptプロジェクトを作ったんだけど
ワークスペース内での型情報の共有がうまくいかない。
それぞれ単体では動くんだけど。既に試している人っている?
974デフォルトの名無しさん
2018/02/26(月) 16:47:13.03ID:Y4Glcgpd ブラウザで動く個人的なちょっとしたものしか作らなくて、
ライブラリはimportしないで自分でscriptタグで読み込んでるから、
@typesの定義だけ欲しいんだけど、今って中身のないstubばかりで
importしないと使えないんだけど、これってどうすればいいのでしょうか?
仕方なくファイルをルートにコピーして、意味がわからないまま
export as namespace hogehoge; みたいな文をくっつけたりして
何とか機能するようにしてるけど、非常に困ってます
ライブラリはimportしないで自分でscriptタグで読み込んでるから、
@typesの定義だけ欲しいんだけど、今って中身のないstubばかりで
importしないと使えないんだけど、これってどうすればいいのでしょうか?
仕方なくファイルをルートにコピーして、意味がわからないまま
export as namespace hogehoge; みたいな文をくっつけたりして
何とか機能するようにしてるけど、非常に困ってます
975デフォルトの名無しさん
2018/02/26(月) 17:28:19.81ID:wXoocKSL .d.tsファイルでインポートすればいいはず
976デフォルトの名無しさん
2018/02/26(月) 19:51:46.67ID:Y4Glcgpd いろいろやってみたけど、なかなか上手くいかない。
tsc --listFilesってやると、定義自体は読み込めてるようなんだけど、
要するに、d.tsファイルがIsomorphic modules (UMD global)ってやつに対応した書き方になってなくて、
それに対応するためにexport as namespace hogehoge; が必要だったりするらしい
https://www.typescriptlang.org/docs/handbook/modules.html#umd-modules
tsc --listFilesってやると、定義自体は読み込めてるようなんだけど、
要するに、d.tsファイルがIsomorphic modules (UMD global)ってやつに対応した書き方になってなくて、
それに対応するためにexport as namespace hogehoge; が必要だったりするらしい
https://www.typescriptlang.org/docs/handbook/modules.html#umd-modules
977デフォルトの名無しさん
2018/02/26(月) 21:54:01.34ID:0Cvn/PR2978デフォルトの名無しさん
2018/02/26(月) 23:16:55.53ID:Y4Glcgpd 例えばmomentを使う場合、scriptタグでmoment.jsを読み込んでいれば、
自分のjsではconsole.log(moment().format("YYYYMMDD hh:mm:ss"))みたいに使えます。
そのjsをtypescriptで書こうとした場合、moment()の定義が必要になります。
そこで@types/momentをインストールするわけですが、@typesはオワコンらしく、
実際にはmoment自体のパッケージもインストールされて、その中の定義ファイルが
参照されるようになります。
しかし、自分が使おうとしているmoment()は、トップレベルのwindow.moment()なわけですが、
定義ファイルでは、そのことが考慮されていないために定義を見つけられないようです。
(エラーは出ますが、anyとしてコンパイルはされます。)
その定義を見つけらるようにするおまじないが、export as namespace moment;のようです。
結局は、モジュールシステムに合わせた定義ファイルの書き方を
理解している人が少ないのだと思います。
export hogehoge とか export default hogehoge とか export = hogehogeとか
わけわかりません。
自分のjsではconsole.log(moment().format("YYYYMMDD hh:mm:ss"))みたいに使えます。
そのjsをtypescriptで書こうとした場合、moment()の定義が必要になります。
そこで@types/momentをインストールするわけですが、@typesはオワコンらしく、
実際にはmoment自体のパッケージもインストールされて、その中の定義ファイルが
参照されるようになります。
しかし、自分が使おうとしているmoment()は、トップレベルのwindow.moment()なわけですが、
定義ファイルでは、そのことが考慮されていないために定義を見つけられないようです。
(エラーは出ますが、anyとしてコンパイルはされます。)
その定義を見つけらるようにするおまじないが、export as namespace moment;のようです。
結局は、モジュールシステムに合わせた定義ファイルの書き方を
理解している人が少ないのだと思います。
export hogehoge とか export default hogehoge とか export = hogehogeとか
わけわかりません。
979デフォルトの名無しさん
2018/02/27(火) 01:53:35.35ID:ZLoGDkNB >>978
@typesは別にオワコンじゃない。
型定義を提供するのに2つのルートがあるってだけ。
momentは作者側で型定義を提供してくれてるってだけ。
ところで解決したってことでいいんだよね?
/// <reference path="./mytypes/moment.d.ts"/>
みたいな感じでカスタムしたd.tsを読めばいいだけだし。
@typesは別にオワコンじゃない。
型定義を提供するのに2つのルートがあるってだけ。
momentは作者側で型定義を提供してくれてるってだけ。
ところで解決したってことでいいんだよね?
/// <reference path="./mytypes/moment.d.ts"/>
みたいな感じでカスタムしたd.tsを読めばいいだけだし。
980デフォルトの名無しさん
2018/02/27(火) 01:59:51.55ID:ZLoGDkNB つーかUMD対応中みたいだね
https://github.com/moment/moment/pull/3688
ワークアラウンドとして
import * as _moment from 'moment';
export as namespace moment;
export = _moment;
というd.tsを作ってimportすればいい
https://github.com/moment/moment/pull/3688
ワークアラウンドとして
import * as _moment from 'moment';
export as namespace moment;
export = _moment;
というd.tsを作ってimportすればいい
981デフォルトの名無しさん
2018/02/27(火) 12:44:23.84ID:XDcEi9Sw import使っちゃった意味ないんだけどね
vueみたいに複数のファイルに分けられちゃうと大幅に変えないといけないから
気軽にプルリクできない感じがする
だが自分でその場しのぎの対応してると、バージョン上げられた時に詰む
vueみたいに複数のファイルに分けられちゃうと大幅に変えないといけないから
気軽にプルリクできない感じがする
だが自分でその場しのぎの対応してると、バージョン上げられた時に詰む
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- アメリカ議会 「中国が台湾武力侵攻する準備を急速進展中」 ★2 [お断り★]
- 【高市自民】中国軍SNS 高市首相に怖すぎる地獄絵で警告、火の海の靖国神社「自ら墓穴を掘り、戻れない道へ進む」 [夜のけいちゃん★]
- 【速報】公然わいせつの疑いで逮捕・送検・略式起訴のAぇ! group 草間リチャード敬太メンバー 脱退を発表 「心の病の療養」に専念 [Ailuropoda melanoleuca★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
- 小野田紀美 経済安保相「悪いことをする外国人、日本にいない状況つくる」 [Hitzeschleier★]
- 「二枚舌は許されない」中国外務省 高市総理の発言を批判… ★2 [BFU★]
- 【高市早苗】やせ我慢型の節約が大流行😫😠😤 [583597859]
- 【実況】博衣こよりのえちえちお子様ランチ🛸💜🥀🧪🍃★2
- 【男磨き】ハウスルール汁遊び禁止🈲🏡【ジョージメンズコーチ】
- 奈良高専「ぼくらは、ほんとに負けたんでしょうか…」ロボコンで旭川1up周回作戦に敗北、涙ながらに語る。奈良OBからも疑問の声 [776365898]
- 【悲報】イチゴ高騰で、ショートケーキからイチゴが消える🍰 [966095474]
- 【画像】沖縄旅行ぼく、とんでもなく綺麗なビーチに来てしまうWWWWWWWWWWW [732289945]
