interface Test {
a: string;
b: number;
c: boolean;
}
type OmitA = Omit<Test, "a">; // Equivalent to: {b: number, c: boolean}
type OmitAB = Omit<Test, "a" | "b">; // Equivalent to: {c: boolean}
const a: OmitA = {
a: 'aa',
b: 1,
c: true
}
const b: OmitAB = {
a: 'aa',
b: 1,
c: true
}
Omit 은 optional으로 된 prop이 사라지는 버그가 있었는데 3.5에서 패치가 되었다.
interface Test {
a?: string;
b?: number;
c?: boolean;
}
type OmitA = Omit<Test, "a">; // Equivalent to: {b: number, c: boolean}
const a: OmitA = {
b: 1, // optional이 풀려서 required로 변경된다.
c: true, // optional이 풀려서 required로 변경된다.
}
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/36189
'Javascript > Typescript' 카테고리의 다른 글
Redux useSelector 사용시, 귀찮은 RootState(AppState)을 없애기 (0) | 2022.02.02 |
---|---|
[Typescript] 릴리즈 노트 (0) | 2021.10.11 |
[Typescript] storybook에서 절대 경로 설정하기 (0) | 2021.03.24 |
Typescript Optional Chaining Prettier 에러 해결 방법 (0) | 2020.04.28 |
타입스크립트 자주 쓰는 문법 모음 (0) | 2019.11.09 |