将你的猴子补丁码放在一个文件中。 你可以称它为猴子补丁date.ts,例如:
猴子补丁date.ts
interface Date {
YearsFromToday(): number;
}
Date.prototype.yearsFromToday = function(): number {
// implementation
}
,然后在main.ts或任何其导入您的输入模块:
main.ts
import './monkey-patch-date';
交替。如果你想明确地表明你正在做一些危险的事情,你可以将它作为一个模块来导出它的monkey-patcher。
猴子补丁date.ts
declare global {
interface Date {
yearsFromToday(): number;
}
}
export default function() {
Date.prototype.yearsFromToday = function(): number {
// implementation
};
}
,并导入它像
main.ts
import monkeyPatchDate from './monkey-patch-date';
monkeyPatchDate();
另一种选择,尤其适用于图书馆的作者是允许猴子补丁,但不需要它,同时仍然暴露功能。
下面是一个例子:
日期扩充/ index.ts
export function yearsFromToday(date: Date): number {
// implementation
}
日期扩充/猴patch.ts
import {yearsFromToday} from './index';
declare global {
interface Date {
yearsFromToday(): number;
}
}
Date.prototype.yearsFromToday = function() {
return yearsFromToday(this);
}
现在消费者可以通过运行
来猴子修补Date原型
import 'date-augmentations/monkey-patch';
可以通过出口没有猴访问功能修补任何
import {yearsFromToday} from 'date-augmentations';
const date = new Date('12-12-2023');
const yft = yearsFromToday(date);
console.log(yft); // prints 6
谢谢,我会检查了这一点,当我回家 –
@ johnny5我添加了一些额外的信息,你可能会发现,如果你需要的有用写图书馆或遇到冲突。 –