簡體   English   中英

運算符“>=”不能應用於“持續時間”和“數字”類型。(2365)

[英]Operator '>=' cannot be applied to types 'Duration' and 'number'.(2365)

我在我的 vscode 中收到此運算符 >= 錯誤,我無法理解發生了什么。 我正在嘗試將此代碼示例從 moment 轉換為 luxon 但突然出現此錯誤,並且我的預期結果並沒有在我獲得 moment 時實現。 下面給出了我的示例代碼示例,請看一下:

這是時刻示例:

const lastActivityLoaded1 = 1;

// moment().diff(lastActivityLoaded, 'hours') >= 48 && !canGetAllActivities()

console.log(`This keys moment Method : `, moment().diff('hours') >= 48); // false
console.log(
  `This keys moment Method 2 : `,
  moment().diff(lastActivityLoaded1, 'hours') >= 48
); // true

這是 luxon 示例:

const lastActivityLoaded = 1;

console.log(
  `This keys luxon Method 2 :  `,
  luxon.DateTime.fromISO().diff({ hours: lastActivityLoaded }) >= 48
); // false 

在這里我期望 true 為 output 但我越來越假。

在這里,當我的鼠標指針為 hover 時,出現此錯誤,

運算符“>=”不能應用於類型“持續時間”和“數字”。(2365) 預期 1-2 arguments,但得到 0。(2554) datetime.d.ts(635, 20):“文本”的參數' 沒有提供。 (方法) DateTime.fromISO(text: string, opts?: luxon.DateTimeOptions): luxon.DateTime

在這里我期望 true 為 output 但我越來越假。

有關如何從 moment.js 遷移到 Luxon 的指南,請參閱https: //moment.github.io/luxon/#/moment。

您的第一個問題是DateTime.fromISO() fromISO方法需要一個字符串作為參數。 要在沒有任何 arguments 的情況下復制調用moment的功能,請改用DateTime.now()

其次,Luxon 的diff方法返回一個Duration實例,而不是像 moment 那樣返回一個數字。 要獲得相同的功能,請從Duration中獲取毫秒數。 此外, diff的第一個參數必須是DateTime實例,因此您需要創建一個添加小時數的實例並將其傳遞。

luxon.DateTime.now().diff(
  luxon.DateTime.now().plus({ hours: lastActivityLoaded }), 
  'hours'
).milliseconds >= 48

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM