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
닫아도 해결할 수 없습니다.해결책을 아는 사람이 있으면 알려주세요.
Reference
이 문제에 관하여(TypeScript를 사용하여 객체의 한 속성만 덮어쓰는 보안 함수를 정의합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuya_takeyama/items/d6f9bfa259a8deaf0ee1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)