ウェブサイト検索

javascript - 演算子 '<' は型 'Date' と 'number' に適用できません。ts(2365)


私は Angular 8 アプリケーションを使用しており、この関数があります:

 checkExpired(echeq: EcheqSubmissionApi) {
    const today = Date.now();
    const validUntil = echeq.validUntilUtc;
    if (validUntil < today) {
      echeq.status = EcheqSubmissionStatus.EXPIRED;
      return true;
    }
    return false;
  }

そして

   validUntilUtc?: Date;

しかし、このエラーが出ます:

Operator '<' cannot be applied to types 'Date' and 'number'.ts(2365)

この行で:

if (validUntil < today) {

これをどうやって直しますか?

回答 #1

Date.now() を使うと number 型が返されるため、型の不一致が発生します。validUntil をその日付のミリ秒表現に変換し、today と比較してみてください。

回答 #2

ヒント1:- このように日付をキャストしてみてください

const validUntil = new Date(echeq.validUntilUtc); 

ヒント2:- または validUntilUtc の型を直接 Date に変更することもできます

validUntilUtc : Date;

今、オペレーターは以下の場合に動作するはずです

if (validUntil < today) {
....
}