인터페이스에서 속성을 선택하는 방법

내장형Pick을 사용할 수 있습니다. Pick<MyInterface, "prop1" | "prop2">는 인터페이스에서 특정 속성을 선택할 수 있는 내장 유형입니다.

훌륭한 사용 사례는 사용자 자격 증명을 확인하는 것입니다. 다음과 같은 User 인터페이스가 있을 수 있습니다.

interface User {
  id: number;
  firstName: string;
  lastName: string;
  email: string;
  password: string;
}

email 인터페이스에서 passwordUser 속성을 사용하여 새 인터페이스를 만드는 대신 Pick 두십시오!

// without Pick
async function verifyLoginCredentials(credentials: { email: string, password: string }) {
  // ... ...
}

// with Pick
async function verifyLoginCredentials(credentials: Pick<User, "email" | "password">) {
  const user = await getUserByEmail(credentials.email);

  if (!passwordMatches(credentials.password, user.password)) {
    throw new BadRequestError('incorrect password');
  }

  return user;
}

verifyLoginCredentials({ email: "[email protected]", password: "123" });

좋은 웹페이지 즐겨찾기