typescript

[Typescript] interface의 키 값 자체를 타입으로 지정하기

문앵 2024. 7. 3. 19:10

* 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 ~>

 

 

반응형