ruby-on-rails 如何修复错误TS2339:类型'Moment'上不存在属性'tz'?

bq3bfh9z  于 2022-12-20  发布在  Ruby
关注(0)|答案(1)|浏览(249)

在rails应用程序中,我创建了使用angular的前端应用程序。这里我使用momentmoment-timezone,如

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

timezone.service.ts中导入和使用like

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;
  }

运行bundle exec rake assets:precompile时获取ERROR in src/app/components/datetime/timezone.service.ts(55,9): error TS2339: Property 'tz' does not exist on type 'Moment'. src/app/components/datetime/timezone.service.ts(80,23): error TS2339: Property 'tz' does not exist on type 'typeof moment'.
npm版本为6.4.1
node版本为v8.12.0
ruby版本为ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-linux]
请帮我解决这个问题。

wlsrxk51

wlsrxk511#

我认为你需要更新你的moment-timezone版本。在5.28上有一个记录在案的bug,但是因为你使用的是一个较低的版本,那里可能也存在。
https://github.com/moment/moment-timezone/issues/906
这表明5.33和5.31没有错误,在Rails应用程序中,使用moment-timezone 5.40,我能够使用tz函数,没有错误。

ds.tz("America/Chicago")

从我的工作包. json

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

相关问题