← Back to NOTES 🌰 ← Back to Effective TypeScript
별칭(alias)은 타입스크립트가 타입을 좁히는 것을 방해한다. "별칭은 일관성 있게 사용한다"는 기본 원칙(golden rule)을 지켜야 한다. 비구조화 문법을 사용하면 일관된 이름을 사용할 수 있으며, 함수 호출이 객체 속성의 타입 정제를 무효화할 수 있으므로 속성보다는 지역 변수를 사용하는 것이 안전하다.
별칭을 만들면 원본 값과 별칭이 서로 다른 이름으로 같은 값을 참조하게 된다. 별칭의 값을 변경하면 원본 속성 값도 변경되며, 별칭을 남발하면 제어 흐름을 분석하기 어려워진다.
속성 체크를 통해 타입을 좁혔더라도, 별칭을 만들면 별칭의 타입은 좁혀지지 않는다. 이는 타입 체커의 제어 흐름 분석이 속성과 별칭을 다르게 다루기 때문이다.
1. 일관성 있는 별칭 사용
2. 객체 비구조화 사용
3. 지역 변수 사용