2016-12-02 1 views
0

내 TypeScript 응용 프로그램에 strictNullChecks을 사용하도록 설정했습니다. TypeScript로 작성된 RxJS 5를 사용하고 있습니다. 그러나 이것은 strictNullChecks을 활성화하지 않았습니다.라이브러리가 아닌 코드에 대해서만 strictNullChecks를 활성화하는 방법이 있습니까?

따라서, 나는 다음 작업을 수행 할 때 :

Observable.fromEvent(document.getElementById('button'), 'click') 

나는 다음과 같은 오류 얻을 : 즉

Error TS2345: Argument of type 'HTMLElement | null' is not assignable to parameter of type 'EventTargetLike'. 
Type 'null' is not assignable to type 'EventTargetLike'. 

, 첫 번째 인수는 EventTargetLike해야 RxJS says을 실제로 무엇을 의미는 약 EventTargetLike | null이어야한다는 것입니다. TypeScript 구성을 사용할 때의 모습입니다.

TypeScript에서 this question에 설명 된대로 유형 검사를 사용하지 않고 라이브러리 구성을 사용하도록 설정하는 방법이 있습니까 (기본 라이브러리가 아닌 경우 작동하지 않음).

답변

1

what it actually means is that it should be roughly an EventTargetLike | null

아마도 그렇지 않습니다. 그것은 실제로 목표를 원하며 null 일 수있는 것을 전달해서는 안됩니다. 빠른 수정 : 당신은 내가 null이 될 수 없습니다에 btn을 알고 것을 !와 컴파일러를 말하고있다

let btn = document.getElementById('button'); 
Observable.fromEvent(btn!, 'click'); 

. 대상이 널 (null)과 같은 예상치 못한 여부가 확인 않습니다, 사실

let btn = document.getElementById('button'); 
if (btn != null){ 
    Observable.fromEvent(btn, 'click'); 
} 
+0

: 또는 당신이 컴파일러 행복을 할 수있는 검사를 할 수 https://github.com/ReactiveX/rxjs/blob/master/src/ observable/FromEventObservable.ts # L138 그건 내가 말했듯이, 당신이 이미 저 자신을 이미 점검하고 우아한 방식으로 그 일을 처리하기를 원한다고 생각합니다. 그래서 그것을하는 방법에 대한 포인터 주셔서 감사합니다 :) – Vincent