moment.js 对象的 JSDoc typedef 声明

JSDoc typedef declaration for moment.js object

我有一个使用 moment.js 的函数。我是 typescript 和 jsdoc 导入的新手,我想知道如何记录一个函数 returns,特别是一个 moment 对象:

const moment = require('moment-timezone');
/**
 * @typedef Moment
 * @property {import('moment-timezone').Moment} moment
 */

/**
 * Returns a moment object with the date / time converted to the given timezone
 * @param {Date} dateTime
 * @param {string} targetTimeZone
 * @return {Moment} 
 */
const convertDateTimeToLocationTimeZone = (dateTime, targetTimeZone) => {
    return moment(dateTime).tz(targetTimeZone);
};

我什至不确定上面的内容是否完全错误 - 但上面的内容在 vscode 中也给我这个错误:

Property 'moment' is missing in type 'import("/Users/Deb/Desktop/project/node_modules/moment/....").Moment' but required in type 'import("/Users/Deb/Desktop/project/...").Moment'.

请注意,我确实安装了 @types/moment-timezone

我想你差不多明白了。基于 到一个类似的问题,我认为你需要修改你的代码来匹配这个:

const moment = require('moment-timezone');
/**
 * @typedef {import('moment-timezone').Moment} Moment
 */

/**
 * Returns a moment object with the date / time converted to the given timezone
 * @param {Date} dateTime
 * @param {string} targetTimeZone
 * @return {Moment} 
 */
const convertDateTimeToLocationTimeZone = (dateTime, targetTimeZone) => {
    return moment(dateTime).tz(targetTimeZone);
};

希望有用!