User Guard

value is T 타입 가드

사용자 정의 타입 가드는 런타임 조건을 통과한 값을 호출부에서 더 좁은 타입으로 쓰게 해 준다.

isAdminUser가 타입을 좁히는 경로

parameter is Type
  1. User
  2. role 검사
  3. true 분기
  4. AdminUser
  5. manageUsers

타입 프레디케이트

user is AdminUser가 true 분기에서의 타입을 알려 준다.

런타임 증거

role === "admin"처럼 실제 값으로 확인 가능한 조건을 둔다.

else 분기

true가 아니면 남은 타입인 GeneralUser로 좁혀진다.

반복 조건 캡슐화

여러 함수에서 같은 분기 검사를 안전하게 재사용한다.

단언 위치

as AdminUser는 가드 내부에서 검사 보조로만 제한하고, 호출부는 타입 프레디케이트가 만든 분기 결과를 사용한다.