带有 Typescript 的 Luxon:TS2339:“DateTime”类型上不存在属性“c”

Posted

技术标签:

【中文标题】带有 Typescript 的 Luxon:TS2339:“DateTime”类型上不存在属性“c”【英文标题】:Luxon with Typescript: TS2339: Property 'c' does not exist on type 'DateTime' 【发布时间】:2021-12-14 10:06:44 【问题描述】:

我一直在尝试将一个 JS 函数翻译成 TS,其中我使用了Luxon。

问题是当我尝试从now() 访问c 属性时,我收到以下错误Typescript: TS2339: Property 'c' does not exist on type 'DateTime'.

import  DateTime as Luxon  from 'luxon';

const getCurrentHour = (): number => 
  const dTime = Luxon.now();
  return dTime.c.hour;


console.log(typeof Luxon.now()); // I get "DateTime"
console.log(Luxon.now()); // I can see the "c" property

我知道 javascript 的 DateTime 接口没有这个 c 属性,但是我如何设法用 Luxon 和 TypeScript 编写这段代码?我已经安装了@types/luxon 并试图在那里找到一个类型导出,但没有成功。

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。 试试return dTime.hour 而不是return dTime.c.hour

【讨论】:

成功了,谢谢:)

以上是关于带有 Typescript 的 Luxon:TS2339:“DateTime”类型上不存在属性“c”的主要内容,如果未能解决你的问题,请参考以下文章

Vue + Luxon - 使用 Luxon 过滤器进行格式化

关于 TypeScript 中传播参数的问题

将 Typescript 2 @Types 与 typescript 1.8.10 一起使用

如何使用 Luxon 格式化时间(不是日期)?

Luxon HH:mm 日期时间之间的差异

如何在 Luxon 中使用 diff 方法