在我的Towers(n-1,fr,spare,to)
文件中,我具有以下扩展名:
extensions/date.ts
在interface Date {
addDays: (days: number) => Date
}
Date.prototype.addDays = function(days: number): Date {
if (!days) return this;
let date = this;
date.setDate(date.getDate() + days);
return date;
};
中,它首先被导入:
server.ts
它实际上可以编译,并且可以正常工作!但是有时候,当我进行更改并且使用import './extensions/date';
import * as dotenv from 'dotenv';
dotenv.config()
...rest imports
自动重新编译应用程序并使用nodemon
运行该应用程序时,该应用程序将中断并且TS不再将node-ts
识别为有效功能。
为了临时解决此问题,我曾经将进口商品重新定位到链中的较高位置,但现在我无处可攀。
错误是旧版2339:
类型“日期”上不存在属性“ addDays”。 (2339)
有人解决吗?也许可以解决?
答案 0 :(得分:0)
您必须使用global
文件中的Date
接口覆盖date.ts
export {}
declare global {
interface Date {
addDays(days: number): Date
}
}
Date.prototype.addDays = function(days: number): Date {
if (!days) return this;
let date = this;
date.setDate(date.getDate() + days);
return date;
};
export {}
可以避免File date.ts is not a module.
错误
然后可以在主文件中import './date'
并调用let fn = (arg: Date) => arg.addDays(1);
,而不会出错
import * as x from './date';
let fn = (arg: Date) => arg.addDays(1);