TypeScript의 다른 유형에서 특정 속성을 제거하거나 생략하여 새 유형을 쉽게 만드는 방법은 무엇입니까?
4823 단어 typescript
TypeScript의 다른 유형에서 특정 속성을 제거하거나 생략하여 새 유형을 쉽게 만들려면
Omit
유틸리티 유형을 사용하고 속성을 제거하려는 유형의 이름을 첫 번째 유형 인수로 전달하고 필요한 속성을 전달할 수 있습니다. 문자열 리터럴 공용체 유형 또는 문자열을 두 번째 유형 인수로 제거합니다.TL;DR
// a simple interface
interface Person {
name: string;
age: number;
dob: string;
salary: number;
}
// make new type by omiting the `salary`
// property from the `Person` interface
// using the `Omit` utility type
type NecessaryDetails = Omit<Person, "salary">;
/*
Content of `NecessaryDetails` type
{
name: string;
age: number;
dob: string;
}
*/
예를 들어, 문자열 유형을 갖는
Person
, 유형이 name
인 age
, 유형이 number
인 dob
, this915와 같은 유형인 string
이라는 일부 속성이 있는 salary
이라는 인터페이스가 있다고 가정해 보겠습니다.// a simple interface
interface Person {
name: string;
age: number;
dob: string;
salary: number;
}
이제
number
, name
및 age
속성이 필요하지만 dob
인터페이스의 salary
속성이 아닌 새 유형을 만들어야 한다고 가정해 보겠습니다. 이를 위해 Person
유틸리티 유형을 사용하고 Omit
유틸리티 유형을 첫 번째로 전달할 수 있습니다. 다음과 같이 두 번째 유형 인수로 유형 인수 및 문자열 Person
,// a simple interface
interface Person {
name: string;
age: number;
dob: string;
salary: number;
}
// make new type by omiting the `salary`
// property from the `Person` interface
// using the `Omit` utility type
type NecessaryDetails = Omit<Person, "salary">;
/*
Content of `NecessaryDetails` type
{
name: string;
age: number;
dob: string;
}
*/
이제
salary
유형 위로 마우스를 가져가면 이제 NecessaryDetails
유형에서 사용할 수 있는 name
속성을 제외하고 age
인터페이스에서 dob
, Person
및 salary
속성이 선택되었음을 볼 수 있습니다.TypeScript의 다른 유형에서 특정 속성을 제거하거나 생략하여 새로운 유형을 성공적으로 만들었습니다. 예이 🥳!
codesandbox에 있는 위의 코드를 참조하십시오.
그게 다야 😃!
이 정보가 유용하다고 생각되면 자유롭게 공유하세요 😃.
Reference
이 문제에 관하여(TypeScript의 다른 유형에서 특정 속성을 제거하거나 생략하여 새 유형을 쉽게 만드는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/melvin2016/how-to-easily-make-a-new-type-by-removing-or-omitting-certain-properties-from-another-type-in-typescript-3jcd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)