찾다

 >  Q&A  >  본문

javascript - Typescript에서 인터페이스 및 객체 리터럴의 추가 속성을 감지하는 데 문제가 있습니다. 어설션이나 변수를 사용할 때 추가 속성이 감지되지 않는 이유는 무엇입니까?

으아아아

ts 이 코드를 컴파일하면 오류가 발생하지만 다음 두 가지 방법을 사용하면 오류가 발생하지 않습니다. 공식 홈페이지의 설명이 제 이해력을 넘어서네요. ts 구문이 너무 캐쥬얼하다는 느낌만 들 뿐이에요...

으아아아

또는

으아아아

이런 식으로 오류가 보고되지 않습니다. 단언(as/>)을 사용할 때 인터페이스는 어떤 규칙에 따라 비교됩니까? 그런 다음 개체 리터럴을 변수에 복사합니다. 이것이 개체에 대한 참조 포인터라는 것을 알고 있지만 추가 속성이 감지되지 않는 이유는 무엇입니까? 공식 홈페이지 주소

習慣沉默習慣沉默2710일 전687

모든 응답(2)나는 대답할 것이다

  • 为情所困

    为情所困2017-06-30 09:54:24

    첫 번째 예:as 不是断言吧 as 是强制转化 就说明你知道你要做的事情 当然 ts 也就让你编译过了
    第二个例子 好像本来就应该过的吧 color 你又不是一定要; colour는 또 다른 속성입니다.
    이것이 이전에 사용되지 않은 이유는 ts가 객체 리터럴에 대한 고유한 검사를 가지고 있기 때문입니다

    회신하다
    0
  • PHP中文网

    PHP中文网2017-06-30 09:54:24

    1. as는 변수를 다른 유형으로 강제로 사용하는 강제 유형 변환입니다. 런타임 중에 발생하는 문제에 대한 책임은 사용자에게 있습니다.

    2. 객체 리터럴을 사용하여 객체를 할당하는 감지 논리는 변수를 사용하여 객체를 할당하는 메커니즘과 다릅니다.

    으아악

    회신하다
    0
  • 취소회신하다