* as keyof typeof ~
const onSuccessReportedRepleDetail = useCallback((data: any) => {
const { result } = data.data;
setDetailData(result);
for (const item in options) {
handleOptionsChange(item as keyof typeof options);
}
}, []);
여기서 타입 지정 => 'as keyof typeof options' 이렇게 써주면 말 그대로임 options의 타입의 키값이 인자값의 타입이 됨!
item as "idx" | "status" | "admin" | "adminMemo" -> 라고 써줘야하는 것을 줄여줬음.
const handleOptionsChange = <K extends keyof typeof options>(key: K) => {
if (detailData) updateOptions(key, detailData[key]);
}
여기서도 타입지정 => <K extends keyof typeof options> 이걸로 매개변수인 key 의 타입을 K로 한번에 지정하기 편리했다
헷갈린다 계속,, 쓰다보면 됮겠지
기억하자!
인자값을 넘겨줄때 타입지정은 "as"
매개변수를 선언해줄때 타입지정은 ":"
< ~ extends ~>
반응형
'typescript' 카테고리의 다른 글
[typescript] 인덱스 시그니처 정의 (1) | 2024.07.11 |
---|---|
[typescript] ~형식의 매개 변수에 할당될 수 없습니다. 'scending' 속성의 형식이 호환되지 않습니다. 'string' 형식은 '"desc" | "asc"' 형식에 할당할 수 없습니다. (3) | 2024.07.08 |
[typescript] 인터페이스 재활용하 (0) | 2024.07.04 |