【发布时间】:2021-08-31 10:05:09
【问题描述】:
基于https://github.com/moment/luxon/issues/260。我想在DateTime 中添加扩展名,如下所示:
import { DateTime } from 'luxon';
function fromUnix(tsp?: number): DateTime {
return DateTime.fromMillis(tsp * 1000);
}
function toUnix(): number {
const seconds = (this as DateTime).toSeconds();
return parseInt(String(seconds));
}
if (!DateTime.prototype.fromUnix) {
DateTime.prototype.fromUnix = fromUnix;
}
if (!DateTime.prototype.toUnix) {
DateTime.prototype.toUnix = toUnix;
}
但我不知道如何为上述方法添加类型定义以让 typescript 检查它。
我已经尝试过以下方法
declare module 'luxon/src/datetime' {
interface DateTime {
fromUnix(tsp?: number): DateTime;
toUnix(): number;
}
}
但是当我使用DateTime时会抛出'DateTime' only refers to a type, but is being used as a value here.之类的错误,例如:
import { DateTime } from 'luxon';
class MyClass {
start = DateTime.now();
}
请帮我解决这个问题。我哪里做错了?
非常感谢您的帮助。
【问题讨论】:
标签: javascript typescript luxon