質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

2回答

2211閲覧

プロパティ 'toDate' は型 'Date' に存在しません。の対処法

21212121

総合スコア61

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2020/09/15 05:44

編集2020/09/15 06:53

現在TypsScriptで開発をしていて型定義について調べても回答が得られなかったので質問させてください。
イメージ説明

こちらのtoDateにはどのような型を入れたら弾かれないでしょうか?
ちなみにこちらのdayの中にはこちらの
イメージ説明
年/月/日付のフォーマットを格納しております。
ご回答いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2020/09/15 06:29

day: Dateと、とりあえずDate型で書いたけれども、実際に入るのはFireStoreのTimeStampなので、どう型を書いたらいいかわからないということですか?
maisumakun

2020/09/15 06:30

型宣言は「day: Date」となっていますが、それは間違いということでしょうか?
21212121

2020/09/15 06:49

ozwk様 こちらDate型がFireStoreではTimeStampになってしまっていて、toDateでその月と日付を出したいのに弾かれて困ってる状況です。。。
21212121

2020/09/15 06:50

maisumakun様 props.dayのままなら間違ってないのですが、.toDate()を付け加えますと型定義で弾かれる状態となっております。
maisumakun

2020/09/15 06:53 編集

> FireStoreではTimeStampになってしまっていて それは、JavaScriptサイドではどのような型の値として扱われているのでしょうか(なお、stringにもDateにも、toDateというメソッドは存在しません)。
21212121

2020/09/15 06:55

FireBase にはDate型でaddしております。
maisumakun

2020/09/15 06:57

呼び出したいtoDate()についてのドキュメントをご提示いただけませんでしょうか? (そもそも、JavaScript標準には、Date.prototype.toDate()なるメソッドが存在しないので、21212121さんがどのような動作をさせるために何を実行したいのか、把握ができない状態なのです)
21212121

2020/09/15 07:17

日付のフォーマットをそのまま表示したいなと考えおり、型定義無しの場合.toDate()で表示できたので他の日付の表示をする必要がありそうです、、 ご回答ありがとうございます。
maisumakun

2020/09/15 07:19

> 型定義無しの場合.toDate()で表示できた ということは、day: Dateが間違い、ということになります。
Hogeike

2020/09/24 00:21

これ、結局解決じゃないんですか?解決したならBAをつけて、していないなら何が課題なのかを書きましょう
guest

回答2

0

こちらのtoDateにはどのような型を入れたら弾かれないでしょうか?

この質問の意味がよくわかりませんが(toDateに何らかの型を引数で渡そうとしている?)、要するにDate型にはtoDateという関数は存在しないということです。

timestampDate型に変換するのならnew Date()の引数に渡せばOKだと思います。

javascript

1const date = new Date(timestamp);

投稿2020/09/15 05:55

nekoniki

総合スコア2411

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

21212121

2020/09/15 06:13

ご回答ありがとうございます。 こちらInvalid Dateになってしまいます^^; こちらで画像を乗せることができなかったので質問の方でのさせていただきましたが、propsで日付を渡してそれを何月何日のようにフォーマット化するためにtoDate()を使ったのですが、型定義で弾かれてしまってる状況ということです。
miyabi_takatsuk

2020/09/15 07:07

横槍失礼します。 質問修正依頼でも言われておりますが、 DateクラスにそもそもtoDateというメソッドは存在しませんので、 みなさん、質問者さんが何をしたいのかわからない状態です。 最終的にどういうデータ状況にしたいか提示いただければ、回答のしようが出てきますので、 どうか、どんなデータにしたいかの提示をお願いします。
21212121

2020/09/15 07:15

自分としてはFireStoreに保管してある何月何日のフォーマットを表示させたいと思っていて、.toDateはDateにないのであれば少し代わりの案を探してみようと思います。 ご回答ありがとうございます。
guest

0

ベストアンサー

FireStoreからその画像で示しているようなデータを取得しているようですが、
それは、Date型などではありません。
String型、ようは文字列です。

なので、ご自身で、その文字列を、
Date型に変換する必要があります。
しかし、日本語まじりの、その文字列をTypeScript(JavaScript)で、Date型ないしDateオブジェクトに変換するのは骨が折れると思いますので、
そもそもの、FireStore上でのそのデータの保存形式を、
2020-09-15 00:00:00などのISO 8601に準拠した形式で保存すべきです。
そうすれば、

typescript

1const dateData: Date = new Date('2020-09-15 00:00:00');

とすることで、Dateコンストラクタに直接引数に入れて、インスタンスが生成できます。

なので、二択です。

  • 取得した文字列をDate型に変換するメソッドなどを自分で作る。
  • FireStoreに保存する文字列形式を変更する。

です。
そのどちらかをやるのがベターでしょう。
(もちろん他にも方法はあると思う)

投稿2020/09/15 07:27

miyabi_takatsuk

総合スコア9555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

21212121

2020/09/17 08:35

ご回答ありがとうございます。 早速修正して見たいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問