Typescript

Typescript에서 튜플 데이터를 가공 후 다시 리턴 하는 방법

Dev갱이 2024. 6. 24. 14:36
728x90
// repository
{

	...
    
    ... 중략...
        .then((data) => {
            const [schedule, number] = data;
            const newSchedule = schedule.map((value) => {
                return this.transformSharedMembers(value);
            });

            // 튜플 데이터의 리턴타입을 어떻게 지정 해주어야할것인가?
            return [newSchedule, number];
        });
	
    
    
    private transformSharedMembers(data: ScheduleEntity) {
		const { sharedMembers, ...rest } = data;

		const newSharedMembers = sharedMembers.map((item) => {
			return {
				...item.sharedMember,
			};
		});
		return {
			...rest,
			sharedMembers: newSharedMembers,
		};
	}
    ...

}

 

리턴 받아야 될 튜플 타입이 [ScheduleGetListResDto[], number] 이거라고 가정 했을때
타입스크립트에서 return 구문에서 직접 타입을 지정 할 수 없다.

 

방법1 결과값을 변수에 담고 타입체커가 타입 추론을 하게 만들기

.then((data) => {
    const [schedule, number] = data;
    const newSchedule = schedule.map((value) => {
        return this.transformSharedMembers(value);
    });
    const result: [ScheduleGetListResDto[], number] = [newSchedule, number];
    return result;
});

 

방법2 then 메서드에 리턴 타입 지정 해주기

.then((data): [ScheduleGetListResDto[], number] => {
    const [schedule, number] = data;
    const newSchedule = schedule.map((value) => {
        return this.transformSharedMembers(value);
    });

    return [newSchedule, number];
});
728x90