TypeScript의 다른 유형에서 특정 속성을 가져오거나 선택하여 새 유형을 쉽게 만드는 방법은 무엇입니까?

4606 단어 typescript
Originally posted here!

TypeScript의 다른 유형에서 특정 속성을 가져오거나 선택하여 새 유형을 쉽게 만들려면 Pick 유틸리티 유형을 사용하고 속성을 가져오려는 유형의 이름을 첫 번째 유형 인수로 전달하고 속성을 전달할 수 있습니다. 두 번째 유형 인수로 문자열 리터럴 공용체 유형을 선택해야 합니다.

TL;DR




// a simple interface
interface Person {
  name: string;
  age: number;
  salary: number;
}

// make new type by picking the `name`
// and `age` properties from the `Person` interface
// using the `Pick` utility type
type NecessaryDetails = Pick<Person, "name" | "age">;

/*
Content of `NecessaryDetails` type

{
    name: string;
    age: number;
}
*/


예를 들어 문자열 유형을 갖는 Person, name 유형을 갖는 agenumber 유형을 갖는 salary라는 일부 속성이 있는 number라는 인터페이스가 있다고 가정해 보겠습니다. ,

// a simple interface
interface Person {
  name: string;
  age: number;
  salary: number;
}


이제 name 인터페이스에서 agePerson 속성만 필요한 새 유형을 만들어야 한다고 가정해 보겠습니다. 이를 위해 Pick 유틸리티 유형을 사용하고 Person 유형을 다음과 같이 전달할 수 있습니다. 첫 번째 유형 인수와 nameage로 구성된 문자열 리터럴 공용체 유형은 두 번째 유형 인수로 다음과 같습니다.

// a simple interface
interface Person {
  name: string;
  age: number;
  salary: number;
}

// make new type by picking the `name`
// and `age` properties from the `Person` interface
// using the `Pick` utility type
type NecessaryDetails = Pick<Person, "name" | "age">;

/*
Content of `NecessaryDetails` type

{
    name: string;
    age: number;
}
*/


이제 NecessaryDetails 유형 위로 마우스를 가져가면 nameage 속성이 Person 인터페이스에서 선택되고 이제 NecessaryDetails 유형에서 사용할 수 있음을 볼 수 있습니다.

TypeScript의 다른 유형에서 특정 속성을 가져오거나 선택하여 새로운 유형을 성공적으로 만들었습니다. 예이 🥳!

codesandbox에 있는 위의 코드를 참조하십시오.

그게 다야 😃!

이 정보가 유용하다고 생각되면 자유롭게 공유하세요 😃.

좋은 웹페이지 즐겨찾기