typescripts 유형 가드 및 플로우 분석이 예기치 않게 작동하는 경우를 발견했습니다. 나는 그것을 버그라고 부르기를 망설이지 만, 나는 그것이 실제로 어떻게 이라고 생각하는지 모른다.. 내 경험에 의하면, 보통은 마술처럼 내가 원하는 것을 해낸다.Typescript 유형 흐름 분석
class Parent { }
class Child extends Parent {
other: Child;
}
let x: Parent = null;
if (x instanceof Child) {
x = x.other;
x = x.other; // this line gives a compilation error
}
Typescript Playground에서이 문제를 해결할 수 있습니다. 보고 된 컴파일 오류가 내게 의미가 없습니다.
'기타'속성이 '부모'유형에 없습니다.
나는 x
이 Child
로 입력했는지의 if
블록 내부에 그 가정 것이다. 왜 이런 일이 일어나는 걸까요? 괜찮은 해결 방법이 있습니까?
"오른쪽 'x'는 '부모'로 간주됩니다. 이것이 사실이라면 첫 번째 할당은 두 번째가 아니라 컴파일 오류입니다. – recursive
죄송합니다. 오타입니다. 왼쪽면을 의미합니다. – s976