TypeScript를 사용하여 객체의 한 속성만 덮어쓰는 보안 함수를 정의합니다.

5566 단어 TypeScript
이런 느낌.
사용Index Types은 들깨입니다.
interface User {
    first_name: string;
    last_name: string;
    first_name_kana: string;
    last_name_kana: string;
    birth_year: number;
    birth_month: number;
    birth_day: number;
}

function updateUserProperty<P extends keyof User>(user: User, propName: P, value: User[P]): User {
    return {
        ...user,
        [propName]: value,
    }
}
그런 다음 이러한 매개 변수를 함수에 전달하면 유형 오류가 발생합니다.
const user: User = {
    first_name: '雄也',
    last_name: '竹山',
    first_name_kana: 'Yuya',
    last_name_kana: 'Takeyama',
    birth_year: 1987,
    birth_month: 3,
    birth_day: 19,
};

const updatedUser = updateUserProperty(user, 'birth_year', '1984');

뭐, 이 자체는 별 효과가 없지만 유니버설 Redux Action Creator를 정의할 때 적용할 수 있을 거예요.

보급을 시도하지만...


이런 느낌으로 해봤어요.
function updateObjectProperty<T, P extends keyof T>(obj: T, propName: P, value: T[P]): T {
    return {
        ...obj,
        [propName]: value,
    }
}
...obj에서 오류가 발생했습니다.
T extends object 닫아도 해결할 수 없습니다.
해결책을 아는 사람이 있으면 알려주세요.

좋은 웹페이지 즐겨찾기