[英]typescript mark function as implementing an interface
我想指出一个 function 有望实现某个接口。
例如:
import { BrowserEvents, eventHandler, Event } from './browser-events';
export function setup(){
const browserEvents = new BrowserEvents();
browserEvents.onClicks(handleClicks);
function handleClicks(ev: Event) {
ev.preventDefault();
}
}
我想告诉 typescript handleClicks
应该匹配类型eventHandler
。 显然,如果handleClicks
的签名与onClicks
不匹配,ts 会抛出错误。 但我想像这样的语法在“源头”显示错误:
// (not valid syntax!)
function handleClicks(ev: Event) implements eventHandler {
ev.preventDefault();
}
我也可以使用 function 作为变量,就像这样,但它会迫使我在使用 function 之前移动它:
const handleClicks: eventHandler = (ev: Event) => {
ev.preventDefault();
}
browserEvents.onClicks(handleClicks);
那么,是否有强制常规 function 遵守签名的语法?
认为您可能可以执行以下操作:
(但不确定您要返回什么,所以我将其输入为void
)
interface FunctionInterface {
(e: eventHandler): void;
}
function f1(e): FunctionInterface {
e.preventDefault();
}
const f2: FunctionInterface = e => {
e.preventDefault()
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.