TypeScript中猴子补丁的解决办法
- Published on
- Reading time
- 2 min read
什么是猴子补丁
猴子补丁是一种在运行时动态修改类或模块的方法。通过猴子补丁,我们可以在程序运行时向现有类或模块中插入、修改或删除方法和属性。
解决方案
此时你想给window挂一个属性,但是ts肯定会直接报错,然后又不想用any,此时可以
typescriptEavan.dev
declare global {
interface Window {
name: string
}
}
如果你感觉这样会污染到全局
还可以用局部类型的方式
typescriptEavan.dev
type MyWindow = typeof window & {
name: string
}
但是这样操作使用的时候就需要用as去断言新的window了
注意事项
还有一个注意事项就是尽量给你添加的属性一个 undefined 的可能,否则有可能会造成一些不必要的错误
兼容性问题:猴子补丁可能导致未来代码或库更新时的兼容性问题。
维护成本高:过度使用猴子补丁会增加代码的复杂度和维护成本。
隐藏 bug:不当使用可能会隐藏或引入新的 bug。