typescript 4

[typescript] 인덱스 시그니처 정의

함수에서 매개변수를 받아와서 특정 객체의 키값에 매핑해서 써야하는데, 타입이 안맞는다고 자꾸 에러가 났다.키의 타입이 정의되어있지 않아서 그런거였다. 인터페이스를 정의할 때 value 타입은 정의되는데, key는 안된다고한다. 그래서 인덱스 시그니처를 적용시켜봤다. 인덱스 시그니처는 내가 에러가 난 저 상황처럼, 객체의 키값에 동적으로 접근하기 위해 사용한다. 지피티형한테 물어보니깐 다음과같은 이유로 사용한다고 한다. *인덱스 시그니처의 사용 이유1. 동적 키 접근: 객체의 키가 사전에 정의되지 않은 경우에 유용.2. 타입 안정성: 모든 키와 값이 특정 타입을 따르도록 강제함.3. 유연성: 객체의 키가 동적으로 추가되거나 변경될 수 있는 경우 유연하게 대응가능. 방법은 쉬운데 시그니처를 먼저 정의해놓고 ..

typescript 2024.07.11

[typescript] ~형식의 매개 변수에 할당될 수 없습니다. 'scending' 속성의 형식이 호환되지 않습니다. 'string' 형식은 '"desc" | "asc"' 형식에 할당할 수 없습니다.

const param = { sDate: "", eDate: "", dateType: "create_date", status: "all", searchType: "email", search: "", limit: 15, page, orderby: "", scending: "desc" } 이런 객체를 인자값으로 넘기고호출한 함수의 매개 변수 타입이export interface searchParams { dateType: string; sDate: string; eDate: string; searchType: string; search: string; status: string; limit: number; pag..

typescript 2024.07.08

[typescript] 인터페이스 재활용하

인터페이스를 좀 잘 활용해보자라고 생각하며 프로젝트를 하니.. 타입을 맞춰주는게 너무 번거롭고 힘들었다 ㅠ그래도 any 와 unknown을 최대한 사용하지 말자라는 생각으로 하고 있다. 인터페이스 파일에서 기존 형태를 정해주고 거기에 일부를 추가하거나 삭제하거나 일부 선택하여 재활용하기가 좋다. 1. 기존 인터페이스 확장하기 (extends)2. 기존 인터페이스에서 일부 속성 제거하기 (Omit)3. 기존 인터페이스에서 일부 속성만 선택하기 (Pick)   1. extendsinterface ExtendedInterface extends OriginalInterface { email: string;}  2. Omittype PartialInterface = Omit;  3. Picktype Select..

typescript 2024.07.04

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

* 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" -> 라고 써줘야하는 것을 줄여줬음..

typescript 2024.07.03
반응형