![](/img/trans.png)
[英]Operator '<' cannot be applied to types 'Date' and 'number'.ts(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.