TypeScript part2at TECH
TypeScript part2 - 暇つぶし2ch1000:デフォルトの名無しさん
18/01/29 11:43:46.31 16WZc9vb.net
インスタンスではなくclass を引数に取った関数を作りたいんですが、良い方法がないでしょうか?
redux.connectをラップする関数を作りたくて上記手段を求めています
サンプルコードはいかにおいています
URLリンク(goo.gl)

1001:デフォルトの名無しさん
18/01/29 11:48:46.22 16WZc9vb.net
>>959
すんません。自己解決
interface IBase {
new (message: string): Base;
}

1002:デフォルトの名無しさん
18/01/29 14:06:48.67 16WZc9vb.net
返り値とか省略すると推論してくれますけど推論の結果を取得する方法ってないですかね?
vscodeでカーソルを合わせてると出るんですけどカーソル合わせている間しか出ないのでコピペしづらくて。

1003:デフォルトの名無しさん
18/01/29 16:26:17.34 g7co9PB2.net
>>960
Baseって何を指すの?

1004:デフォルトの名無しさん
18/01/31 10:23:18.30 V9tZNzCA.net
TypeScriptでglobal import的なものってないですかね?
ロガーを作ったんですけど、それを毎回importするのがしんどくて

1005:デフォルトの名無しさん
18/02/01 14:40:42.51 ma2l7eSX.net
Announcing TypeScript 2.7
URLリンク(blogs.msdn.microsoft.com)

1006:デフォルトの名無しさん
18/02/05 22:05:36.77 wQgqkVj5.net
>>964
TypeScript 2.7.1 変更点
URLリンク(qiita.com)
2.8
Conditional types
URLリンク(github.com)
Type inference in conditional types
URLリンク(github.com)

1007:デフォルトの名無しさん
18/02/05 23:37:11.09 Rv6TwvHy.net
Conditional types関連は既にmergedなのか

1008:デフォルトの名無しさん
18/02/06 05:58:37.68 vXstL54C.net
小躍りしながら使ってみたところ速攻でバグにぶち当たって無事死亡
修正されるまで一回休み

1009:デフォルトの名無しさん
18/02/13 05:54:42.41 kAM/OKSF.net
型を後付した言語の限界があるよな。
ストレージに一度保存して意図せずjsonになってたり、関数のインターフェース上nullやundefind許容しない設定にしてても結局js側でnullの可能性のある値を渡されたらバグるし。
例えばjsとtsの境界部分。
モジュールとして外出ししている関数とかのインターフェースとかをきちんとnullチェックしてくれるコードを自動で埋め込んでくんないかな。

1010:デフォルトの名無しさん
18/02/13 06:47:09.07 a2BGtfue.net
それは信頼できないjsが悪いだけだろ
外部のクソコードはどうにもならん

1011:デフォルトの名無しさん
18/02/13 09:13:05.77 cOH/iFjL.net
TypeScriptが目指してるのはコンパイル時型チェックであって実行時型チェックではない
コンパイル時型チェックならパフォーマンスに影響はない(処理系によってはむしろ向上する)が実行時型チェックは明確にパフォーマンスが落ちる
PHPなんかは実行時型チェックを実装しちゃったもんだからクラスのメンバに型宣言するRFCすらリジェクトされてる

1012:デフォルトの名無しさん
18/02/13 15:21:25.94 xpZzv5qK.net
>>970
ですよね。それはわかっているんですが、、、、
せめてlint的な感じでjs向けのインターフェースが null| undefinedの可能性があるから直せみたいな警告が出るといいんですけど。
async func 内の await記入漏れと一緒にほしい。

1013:デフォルトの名無しさん
18/02/13 15:22:21.77 xpZzv5qK.net
URLリンク(blog.yux3.net)
あと objectとObjectがあるって知らなかった。
hyperappの型定義で始めて見た。

1014:デフォルトの名無しさん
18/02/13 22:00:08.76 XkJQyT0D.net
jsから呼ばれる部分はどうやってもチェックしようがないと思うぞ。

1015:デフォルトの名無しさん
18/02/20 18:34:14.34 KguAhC0Q.net
yarnのワークスペースを使用して、Create React AppとCreate React Native App (Expo) で共通のコードを共有する
URLリンク(taiyaq.com)
を参考にしてcreate-react-app でtypescriptプロジェクトを作ったんだけど
ワークスペース内での型情報の共有がうまくいかない。
それぞれ単体では動くんだけど。既に試している人っている?

1016:デフォルトの名無しさん
18/02/26 16:47:13.03 Y4Glcgpd.net
ブラウザで動く個人的なちょっとしたものしか作らなくて、
ライブラリはimportしないで自分でscriptタグで読み込んでるから、
@typesの定義だけ欲しいんだけど、今って中身のないstubばかりで
importしないと使えないんだけど、これってどうすればいいのでしょうか?
仕方なくファイルをルートにコピーして、意味がわからないまま
export as namespace hogehoge; みたいな文をくっつけたりして
何とか機能するようにしてるけど、非常に困ってます

1017:デフォルトの名無しさん
18/02/26 17:28:19.81 wXoocKSL.net
.d.tsファイルでインポートすればいいはず

1018:デフォルトの名無しさん
18/02/26 19:51:46.67 Y4Glcgpd.net
いろいろやってみたけど、なかなか上手くいかない。
tsc --listFilesってやると、定義自体は読み込めてるようなんだけど、
要するに、d.tsファイルがIsomorphic modules (UMD global)


1019:ってやつに対応した書き方になってなくて、 それに対応するためにexport as namespace hogehoge; が必要だったりするらしい https://www.typescriptlang.org/docs/handbook/modules.html#umd-modules



1020:デフォルトの名無しさん
18/02/26 21:54:01.34 0Cvn/PR2.net
>>975
ちょっと言ってることがわからないからこういうときは小さいサンプルでも作ってどっかにあげてみてくんない?
そしてそうやって小さくまとめてみると意外と自己解決したりするもんだ。

1021:デフォルトの名無しさん
18/02/26 23:16:55.53 Y4Glcgpd.net
例えば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とか
わけわかりません。

1022:デフォルトの名無しさん
18/02/27 01:53:35.35 ZLoGDkNB.net
>>979
@typesは別にオワコンじゃない。
型定義を提供するのに2つのルートがあるってだけ。
momentは作者側で型定義を提供してくれてるってだけ。
ところで解決したってことでいいんだよね?
/// <reference path="./mytypes/moment.d.ts"/>
みたいな感じでカスタムしたd.tsを読めばいいだけだし。

1023:デフォルトの名無しさん
18/02/27 01:59:51.55 ZLoGDkNB.net
つーかUMD対応中みたいだね
URLリンク(github.com)
ワークアラウンドとして
import * as _moment from 'moment';
export as namespace moment;
export = _moment;
というd.tsを作ってimportすればいい

1024:デフォルトの名無しさん
18/02/27 12:44:23.84 XDcEi9Sw.net
import使っちゃった意味ないんだけどね
vueみたいに複数のファイルに分けられちゃうと大幅に変えないといけないから
気軽にプルリクできない感じがする
だが自分でその場しのぎの対応してると、バージョン上げられた時に詰む

1025:デフォルトの名無しさん
18/02/27 12:53:20.87 XDcEi9Sw.net
勘違いしてた
import _moment from 'moment';
export as namespace moment;
export = _moment;
とか、
import _Vue from 'Vue';
export as namespace Vue;
export = _Vue;
みたいに書けばいいのか。
すごい。解決した

1026:デフォルトの名無しさん
18/03/01 22:44:29.35 V7eofqS1.net
次スレカモン

1027:デフォルトの名無しさん
18/03/12 23:33:32.22 ZJVFDbUv.net
TSConf 2018
URLリンク(tsconf.io)
初のカンファか

1028:デフォルトの名無しさん
18/03/16 08:23:22.72 K5Isy9NI.net
Announcing TypeScript 2.8 RC
URLリンク(blogs.msdn.microsoft.com)

1029:デフォルトの名無しさん
18/03/16 14:11:16.40 HcB/quXY.net
>>984
次スレのテンプレに入れたほうがいいものとかある?

1030:デフォルトの名無しさん
18/03/17 00:42:53.78 4Xu/HAYS.net
tsconfigのexcludeの項目を、compilerOptionsの中に書いてて、何でダメなんだろう悩んじゃった
設定はcompilerOptionsの中に書くものと思い込んでて、全然気付けなかった

1031:デフォルトの名無しさん
18/03/17 21:01:59.42 zUTKt+H5.net
>>987
リポジトリとかWikiとかWhat'sNewあたり?
あとは流れで

1032:デフォルトの名無しさん
18/03/28 08:14:57.22 3iq+90ex.net
Announcing TypeScript 2.8
URLリンク(blogs.msdn.microsoft.com)

1033:デフォルトの名無しさん
18/04/02 17:52:32.10 G4IZotVZ.net
俺のtypescriptが好きすぎる感情をどこにぶつけていいかわからない

1034:デフォルトの名無しさん
18/04/02 18:53:21


1035:.97 ID:aSG3UjFJ.net



1036:デフォルトの名無しさん
18/04/03 10:37:57.34 0rmSrban.net
>>991
俺も俺も!。qiitaでもいいしココでもいいよ!!

1037:デフォルトの名無しさん
18/04/03 11:33:16.29 R6gDm2yr.net
次スレよろ

1038:デフォルトの名無しさん
18/04/05 19:58:55.32 0c0qrJs0.net
スレ立てにぶつけることが決まったな

1039:デフォルトの名無しさん
18/04/20 07:03:30.59 yIya3QmH.net
どうしたん?人気あるわりにここ静かやん

1040:デフォルトの名無しさん
18/04/20 09:50:01.67 WJk0jxxj.net
続きはCMのあとで!

1041:デフォルトの名無しさん
18/04/24 20:06:57.83 TUZ43qB9.net
はよ次スレ

1042:デフォルトの名無しさん
18/04/24 21:50:54.24 BAt1Eldp.net
うむ

1043:デフォルトの名無しさん
18/04/26 21:48:57.62 mMDBzDaB.net

スレリンク(tech板)

1044:デフォルトの名無しさん
18/04/26 21:52:07.15 vM7mL5EC.net
safariが次のIEと呼ばれているように、
Typescriptは次のcoffeescriptと言われているwww

1045:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1092日 3時間 14分 38秒

1046:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch