You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Luxon配合TypeScript使用报TS2339:类型'DateTime'不存在属性'c'如何解决?

问题原因

c属于Luxon的内部私有属性,是库的实现层面临时结构,不属于官方公开的API约定,不同版本可能发生修改甚至删除,因此@types/luxon没有在DateTime类型中声明该属性,触发TS类型报错。


解决方案

优先推荐使用官方公开的稳定API获取属性,DateTime实例已公开hour等时间属性,类型定义已包含相关声明,修改后代码如下:

import { DateTime as Luxon } from 'luxon';

const getCurrentHour = (): number => {
  const dTime = Luxon.now();
  // 直接调用公开API即可获取小时,无需访问内部c属性
  return dTime.hour;
}

如果确实有特殊场景必须访问内部属性,可使用类型断言临时绕过校验,该方式不推荐,内部属性变更会直接导致运行时报错:

// 方式1:断言为any临时绕过
return (dTime as any).c.hour;

// 方式2:临时扩展DateTime类型(仅适合临时使用)
interface CustomDateTime extends Luxon {
  c: {
    hour: number;
    // 按需补充其他c属性下需要用到的字段
  }
}
return (dTime as CustomDateTime).c.hour;

内容的提问来源于stack exchange,提问作者Arthur Borba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:36:07