X



TypeScript part2 [転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0924920
垢版 |
2017/11/26(日) 23:51:34.59ID:rkyPHH9I
>>923
すみませんkoa.jsの存在を知りませんでした。
良さげなので検討してみます。
0925デフォルトの名無しさん
垢版 |
2017/12/01(金) 19:48:21.81ID:Qr863YVP
人気沸騰中のはずなのに年々参加者が減っていきついにアドカレ作られすらしなくなったTypeScriptさん
0930デフォルトの名無しさん
垢版 |
2017/12/01(金) 23:55:12.47ID:jFvanr8n
まだasync await周りが完成してないけどね。
とりあえずmapとかfilterが普通に使えるようになってほしい
0933デフォルトの名無しさん
垢版 |
2017/12/14(木) 19:30:41.65ID:lO2D+k3i
>>931
vscodeみてーなUIだな
0934デフォルトの名無しさん
垢版 |
2017/12/14(木) 19:31:21.04ID:lO2D+k3i
>>932
何に使うの?
空でない配列なら分かるけど
0937デフォルトの名無しさん
垢版 |
2017/12/14(木) 22:26:15.12ID:lO2D+k3i
もしかして:タプル機能を知らない
let vec:[number,number=[1,1];
0938デフォルトの名無しさん
垢版 |
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];
0943デフォルトの名無しさん
垢版 |
2017/12/15(金) 12:12:33.81ID:ehq3lI3U
一時期使ってみたが全部取っ払って今は一切使ってない
デコレータを使う設計自体が悪い
技術的負債になるワークアラウンドが不運にも市民権を得てしまったのがデコレータ
デコレータを使うのは未熟者の証
0945デフォルトの名無しさん
垢版 |
2017/12/15(金) 13:09:01.78ID:VJqK9zii
使ってないけど、デコレータはDI(dependency injection)(依存性の注入)に使うんでしょ?
そもそもそれが必要な事なのか知らんけど
0946デフォルトの名無しさん
垢版 |
2017/12/15(金) 16:08:57.23ID:ehq3lI3U
DIはコンストラクタ注入だけでいい
メソッドだの継承だのデコレータだの無駄に複雑なだけ
0950デフォルトの名無しさん
垢版 |
2017/12/18(月) 13:13:38.64ID:2IRqztoA
あげ
0951デフォルトの名無しさん
垢版 |
2018/01/16(火) 20:27:44.97ID:FhxZLFGY
interfaceを使ってるとjsonでセーブする時にすごく便利なんだけどメソッドが生やせないのが辛い。
なんとかならないかな
0955デフォルトの名無しさん
垢版 |
2018/01/24(水) 05:53:19.16ID:V1qhcEkf
localStorageとかreduxとか使ってると意図せず型変換が入ってtscはDate型の想定なのに実際はstringという状況マジ勘弁してください。
0956デフォルトの名無しさん
垢版 |
2018/01/24(水) 08:16:36.90ID:BFkGLEDk
>tscはDate型の想定なのに実際はstringという状況

そりゃ不適切な型付けしてしまっただけじゃね?
stringを入る可能性があるanyをDateと決め打ちしたとか。
0958デフォルトの名無しさん
垢版 |
2018/01/29(月) 11:43:46.31ID:16WZc9vb
インスタンスではなくclass を引数に取った関数を作りたいんですが、良い方法がないでしょうか?
redux.connectをラップする関数を作りたくて上記手段を求めています
サンプルコードはいかにおいています
https://goo.gl/FF5jFc
0960デフォルトの名無しさん
垢版 |
2018/01/29(月) 14:06:48.67ID:16WZc9vb
返り値とか省略すると推論してくれますけど推論の結果を取得する方法ってないですかね?
vscodeでカーソルを合わせてると出るんですけどカーソル合わせている間しか出ないのでコピペしづらくて。
0962デフォルトの名無しさん
垢版 |
2018/01/31(水) 10:23:18.30ID:V9tZNzCA
TypeScriptでglobal import的なものってないですかね?
ロガーを作ったんですけど、それを毎回importするのがしんどくて
0966デフォルトの名無しさん
垢版 |
2018/02/06(火) 05:58:37.68ID:vXstL54C
小躍りしながら使ってみたところ速攻でバグにぶち当たって無事死亡
修正されるまで一回休み
0967デフォルトの名無しさん
垢版 |
2018/02/13(火) 05:54:42.41ID:kAM/OKSF
型を後付した言語の限界があるよな。
ストレージに一度保存して意図せずjsonになってたり、関数のインターフェース上nullやundefind許容しない設定にしてても結局js側でnullの可能性のある値を渡されたらバグるし。

例えばjsとtsの境界部分。
モジュールとして外出ししている関数とかのインターフェースとかをきちんとnullチェックしてくれるコードを自動で埋め込んでくんないかな。
0969デフォルトの名無しさん
垢版 |
2018/02/13(火) 09:13:05.77ID:cOH/iFjL
TypeScriptが目指してるのはコンパイル時型チェックであって実行時型チェックではない
コンパイル時型チェックならパフォーマンスに影響はない(処理系によってはむしろ向上する)が実行時型チェックは明確にパフォーマンスが落ちる

PHPなんかは実行時型チェックを実装しちゃったもんだからクラスのメンバに型宣言するRFCすらリジェクトされてる
0970デフォルトの名無しさん
垢版 |
2018/02/13(火) 15:21:25.94ID:xpZzv5qK
>>969
ですよね。それはわかっているんですが、、、、
せめてlint的な感じでjs向けのインターフェースが null| undefinedの可能性があるから直せみたいな警告が出るといいんですけど。
async func 内の await記入漏れと一緒にほしい。
0973デフォルトの名無しさん
垢版 |
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プロジェクトを作ったんだけど
ワークスペース内での型情報の共有がうまくいかない。
それぞれ単体では動くんだけど。既に試している人っている?
0974デフォルトの名無しさん
垢版 |
2018/02/26(月) 16:47:13.03ID:Y4Glcgpd
ブラウザで動く個人的なちょっとしたものしか作らなくて、
ライブラリはimportしないで自分でscriptタグで読み込んでるから、
@typesの定義だけ欲しいんだけど、今って中身のないstubばかりで
importしないと使えないんだけど、これってどうすればいいのでしょうか?

仕方なくファイルをルートにコピーして、意味がわからないまま
export as namespace hogehoge; みたいな文をくっつけたりして
何とか機能するようにしてるけど、非常に困ってます
0976デフォルトの名無しさん
垢版 |
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
0977デフォルトの名無しさん
垢版 |
2018/02/26(月) 21:54:01.34ID:0Cvn/PR2
>>974
ちょっと言ってることがわからないからこういうときは小さいサンプルでも作ってどっかにあげてみてくんない?
そしてそうやって小さくまとめてみると意外と自己解決したりするもんだ。
0978デフォルトの名無しさん
垢版 |
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とか
わけわかりません。
0979デフォルトの名無しさん
垢版 |
2018/02/27(火) 01:53:35.35ID:ZLoGDkNB
>>978
@typesは別にオワコンじゃない。
型定義を提供するのに2つのルートがあるってだけ。
momentは作者側で型定義を提供してくれてるってだけ。

ところで解決したってことでいいんだよね?
/// <reference path="./mytypes/moment.d.ts"/>
みたいな感じでカスタムしたd.tsを読めばいいだけだし。
0981デフォルトの名無しさん
垢版 |
2018/02/27(火) 12:44:23.84ID:XDcEi9Sw
import使っちゃった意味ないんだけどね
vueみたいに複数のファイルに分けられちゃうと大幅に変えないといけないから
気軽にプルリクできない感じがする
だが自分でその場しのぎの対応してると、バージョン上げられた時に詰む
0982デフォルトの名無しさん
垢版 |
2018/02/27(火) 12:53:20.87ID:XDcEi9Sw
勘違いしてた
import _moment from 'moment';
export as namespace moment;
export = _moment;
とか、
import _Vue from 'Vue';
export as namespace Vue;
export = _Vue;
みたいに書けばいいのか。
すごい。解決した
0987デフォルトの名無しさん
垢版 |
2018/03/17(土) 00:42:53.78ID:4Xu/HAYS
tsconfigのexcludeの項目を、compilerOptionsの中に書いてて、何でダメなんだろう悩んじゃった
設定はcompilerOptionsの中に書くものと思い込んでて、全然気付けなかった
0990デフォルトの名無しさん
垢版 |
2018/04/02(月) 17:52:32.10ID:G4IZotVZ
俺のtypescriptが好きすぎる感情をどこにぶつけていいかわからない
0993デフォルトの名無しさん
垢版 |
2018/04/03(火) 11:33:16.29ID:R6gDm2yr
次スレよろ
0996デフォルトの名無しさん
垢版 |
2018/04/20(金) 09:50:01.67ID:WJk0jxxj
続きはCMのあとで!
0998デフォルトの名無しさん
垢版 |
2018/04/24(火) 21:50:54.24ID:BAt1Eldp
うむ
1000デフォルトの名無しさん
垢版 |
2018/04/26(木) 21:52:07.15ID:vM7mL5EC
safariが次のIEと呼ばれているように、
Typescriptは次のcoffeescriptと言われているwww
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1092日 3時間 14分 38秒
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況