[英]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.