TypeScript:view on playground
alert = (function (origAlert) {
return function (...messages: any[]) {
origAlert(messages.join(" "))
}
})(alert)
// Example
alert(1, 2)
我想覆盖/重新定义alert(message?: any)
之前已在lib.d.ts
中声明的函数declare function alert(message?: any): void;
:alert = function...
但是Invalid left-hand side of assignment expression.
会引发" function alert(...messages: any[]) { /* ... */ }
"
重点是,alert
可以工作 *甚至不起作用,但我需要使用原始的const origAlert = alert
。而且我不喜欢在函数之前定义一个额外的Overload signatures must all be ambient or non-ambient
。
我该怎么做?
请注意,Playground中编译的JavaScript按预期工作。
*在TypeScript Playground上可行,但在Visual Studio中它会抛出" $x = "asdgfhtjshhhhhhhhhasdasdasdass asd";
$result = substr(implode("", preg_split('/\s+/', $x)), 0, 40);
"
答案 0 :(得分:1)
declare function alert(...messages: any[]): void;
window.alert = ((orig) => {
return (...messages: any[]) => orig(messages.join(" "));
})(alert);
alert(1, 2)