將你的猴子補丁碼放在一個文件中。 你可以稱它爲猴子補丁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我添加了一些額外的信息,你可能會發現,如果你需要的有用寫圖書館或遇到衝突。 –