Экспортированный модуль только для чтения.Таким образом, вы не можете сделать это.
delete tp.a;
tp.a = () => {
console.log('c')
}
tp.a() // 'c'
tp.b() // You'll still get 'a'
// it's because, b is calling exported function a
Если вы хотите, чтобы tp.b()
нужно переопределить значение, вы не экспортируете их, а вызываете экземпляр.В вашем примере кода просто экспортируйте a
, а не b
.Но с тех пор вы пытаетесь переопределить его из сторонней библиотеки.Это невозможно.
Но если вы настаиваете на их использовании, вы должны переопределить обе функции.
const obj = {...tp}
obj.a = () => {
console.log('c')
}
obj.b() // 'a'
obj.b = () => {
obj.a()
}
obj.b() // 'c'