Open utterances-bot opened 9 months ago
우연히.. googling하다가 봤어요. 저도 최근에나 typescript를 사용하게 되서(고수아님) 한번 생각해 봤는데..
-- 첫번째는 type guard를 사용하는 방법
const handlersIs = { A: (event: Events): event is AEvent => { if (event.type === "A") { console.log(event); return true; } return false; }, B: (event: Events): event is BEvent => { if (event.type === "B") { console.log(event); return true; } return false; }, };
// handlers 를 호출하는 함수 function handleEvent(e: Events) { if (handlersIse.type) { console.log("Event handled successfully."); } }
-- 두번째는 타입단언(as)을 사용하는 방법
function handleEventAs(e: Events) { (handlers[e.type] as (event: Events) => void)(e); }
[TypeScript] 함수 Record 는 지옥이다 | 봄가을
Object, Map, Record 형태에 함수를 몰아넣고 사용할 때 어려움이 있습니다. 이를 타입 좁히기가 가능한 형태로 바꿔 사용합시다.
https://springfall.cc/article/2023-09/no-func-record