는 당신이 변수 x
캐스팅되어하고있는 any
를 입력합니다. 즉, 컴파일러에게 "이봐,이 곳에서 나는 x
이 이고 실제로는 !!"이라는 것을 알고있다. 컴파일러는 자신이 옳다고 판단하고 해당 호출에 대해 지정한 새 유형을 사용합니다.
any
은 TypeScript의 특수한 형식입니다. 즉, 형식이 무엇이든간에 형식을 변경할 수도 있음을 의미합니다! 이러한 이유 때문에 컴파일러에서는 다른 유형 대신 any
유형의 변수를 사용할 수 있습니다. 따라서 함수는 number
유형의 매개 변수 만 허용하지만 any
유형의 매개 변수도 허용합니다. 물론 any
이 실제로 숫자 일 수 있기 때문입니다.
이 문제가 절에 language specification에 3.8.4 도시 - 할당 호환성 (44-45 페이지) :
을
유형은 표현과 같은 특정 상황에 대입 호환성이 요구되며, 변수 유형은 문 이고 인수 및 매개 변수 유형은입니다. ... S는 T 형에 할당하고, T는 중 하나는 다음의 경우에 해당하고, S로부터 할당이다
- 는 S 및 T는 동일한 타입이다.
- S 또는 T는 모든 유형입니다.
- ...
(강조 광산)
"이 변수는 * 모든 * 유형을 만족합니다"또는 특정 경우 "* x *가 * 모든 * 유형을 만족시킵니다"와 같이 자신에게'모두 '읽으면 도움이 될 수 있습니다. – Fenton