如何修复错误 TS2339:类型“Moment”上不存在属性“tz”?

How to fix error TS2339: Property 'tz' does not exist on type 'Moment'?

提问人:Shruthi R 提问时间:12/19/2022 最后编辑:Penny LiuShruthi R 更新时间:8/4/2023 访问量:1796

问:

在 rails 应用程序中,我创建了使用 .在这里,我正在使用和喜欢angularmomentmoment-timezone

"moment": "^2.22.2",
"moment-timezone": "^0.5.23",

在导入和使用 liketimezone.service.ts

import * as moment from 'moment-timezone';
import {Moment} from 'moment';

public parseDatetime(datetime:string, format?:string):Moment {
    var d = moment.utc(datetime, format);

    if (this.ConfigurationService.isTimezoneSet()) {
      d.local();
      d.tz(this.ConfigurationService.timezone());
    }

    return d;
  }

运行获取时 src/app/components/datetime/timezone.service.ts(55,9) 中的错误:bundle exec rake assets:precompile

错误 TS2339:类型“Moment”上不存在属性“tz”。 src/app/components/datetime/timezone.service.ts(80,23):错误 TS2339: 属性“tz”在类型“typeof moment”上不存在。

npmversion 是6.4.1

nodeversion 是v8.12.0

rubyverson 是ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-linux]

请帮我解决这个问题。

ruby-on-rails angular datetime momentjs moment-timezone

评论


答:

1赞 trh 12/20/2022 #1

我认为您需要更新您的时刻时区版本。5.28 上有一个记录在案的错误,但由于您使用的是较低版本,因此可能也存在。

https://github.com/moment/moment-timezone/issues/906

这表明 5.33 和 5.31 没有错误,并且在 Rails 应用程序中,使用我能够毫无错误地使用我们的函数。moment-timezone 5.40tz

ds.tz("America/Chicago")

来自我的工作package.json

"moment": "^2.29.4",
"moment-timezone": "^0.5.40",