38-1. any 범위 좁히기 (함수 매개변수)
38-2. any 범위 좁히기 (객체)
38-3. @ts-ignore 사용하기
@ts-ignore 을 주석으로 적은 다음 줄의 오류를 제거한다38-4. 반환 타입은 추론 가능한 경우에도 명시하기 (any 반환 금지!)
39-1. 배열임을 알 때
any[] 사용하기39-2. 객체임을 알 때
{[key: string]:any}
object
unknown 사용하기
{[key: string]:any} 와 object 모두 key에 접근 가능하지만, object 타입은 객체[key]에 접근 불가능하다.
39-3. 함수임을 알 때
() => any(arg: any) => any(...args: any[]) => any / Function 사용하기41-1. any 타입의 진화는 암시적 any 타입에 값을 할당할 때만 발생한다
암시적 any[] 타입의 배열에 다양한 타입의 요소를 넣으면 배열의 타입이 확장된다암시적 any 타입은 조건문의 분기에 따라 타입이 확장된다암시적 any 타입은 함수 호출로는 진화하지 않는다암시적 any의 값을 읽으려고 하면 오류 발생41-2. any를 진화시키는 방식보다 명시적 타입 구문을 사용하는 것을 지향하기
42-1. any, unknown, never
any - 어떠한 타입이든 any에 할당 가능, any를 모든 타입에 할당가능unknown - 어떠한 타입이든 unknown에 할당 가능, unknown 은 any와 unknown에만 할당 가능never - 어떠한 타입도 never에 할당 불가, never를 모든 타입에 할당가능42-2. unknown에서 원하는 타입으로 변환하는 방법
instanceof 체크