gpt4 book ai didi

javascript - 在 TypeScript 中覆盖函数

转载 作者:行者123 更新时间:2023-12-03 08:08:54 24 4
gpt4 key购买 nike

typescript :view on playground

alert = (function (origAlert) {
return function (...messages: any[]) {
origAlert(messages.join(" "))
}
})(alert)

// Example
alert(1, 2)

我想覆盖/重新定义之前已在 lib.d.ts 中声明的函数 alert(message?: any):declare function警报(消息?:任何):无效;

但是 alert = function... 抛出“赋值表达式的左侧无效。

重点是,functionalert(...messages:any[]) {/* ... */} 会起作用*甚至不起作用同样,但我需要使用原始的警报。而且我不喜欢在函数之前定义额外的 const origAlert = Alert

我该怎么做?

<小时/>

请注意,Playground 中已编译的 JavaScript 按预期工作。

*在 TypeScript Playground 上它可以工作,但在 Visual Studio 中它会抛出“重载签名必须全部是环境或非环境

最佳答案

declare function alert(...messages: any[]): void;

window.alert = ((orig) => {
return (...messages: any[]) => orig(messages.join(" "));
})(alert);

alert(1, 2)

关于javascript - 在 TypeScript 中覆盖函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34238497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com