Typescript
[typescript] 같은 interface인데 이름만 다르게 쓰고 싶을때 ! 인터페이스 복사하기 (type이용하기)
joannashin3
2022. 2. 4. 12:32
이슈
interface Code {
code: string;
codeName: string;
}
interface BasePageInfo {
code: string;
codeName: string;
}
위에 2개의 interface를 보면 안에 내용은 같지만 이름이 달라야하는 상황이다. 은근 이런 상황이 많았는데 이럴때 합치는 법을 몰라 한참 헤맸다..
해결 type
interface Code {
code: string;
codeName: string;
}
type BasePageInfo = Code;
type 새로운이름 = 복사할코드 로 해결하였다.
다른예시
type을 이용하여 아래 긴 소스를 더 간단하게 줄일 수도 있다.
기존소스
//기존 소스
interface ExcelCategoryPayloadItem {
categoryCode: string;
categoryDepth: number | null;
createDate: string;
parentCategoryStandardSeq: number | null;
}
interface ExcelCategoryPayload {
list: ExcelCategoryPayloadItem[]
}
interface ExcelMarketPayloadItem {
marketCode: string;
categoryDepth: number | null;
createDate: string;
}
interface ExcelMarketPayload {
list: ExcelMarketPayloadItem[]
}
수정한소스
interface ExcelPayload<T> {
list: T[]
}
type ExcelCategoryPayload = ExcelPayload<ExcelCategoryPayloadItem>;
type ExcelMarketPayload = ExcelPayload<ExcelMarketPayloadItem>;
반응형