diff --git a/spec-dtslint/operators/find-spec.ts b/spec-dtslint/operators/find-spec.ts new file mode 100644 index 00000000000..674806947b7 --- /dev/null +++ b/spec-dtslint/operators/find-spec.ts @@ -0,0 +1,26 @@ +import { of } from 'rxjs'; +import { find } from 'rxjs/operators'; + +it('should support a user-defined type guard', () => { + const o = of('foo').pipe(find((s: string): s is 'foo' => true)); // $ExpectType Observable<"foo" | undefined> +}); + +it('should support a user-defined type guard that takes an index', () => { + const o = of('foo').pipe(find((s, index): s is 'foo' => true)); // $ExpectType Observable<"foo" | undefined> +}); + +it('should support a user-defined type guard that takes an index and the source', () => { + const o = of('foo').pipe(find((s, index): s is 'foo' => true)); // $ExpectType Observable<"foo" | undefined> +}); + +it('should support a predicate', () => { + const o = of('foo').pipe(find(s => true)); // $ExpectType Observable +}); + +it('should support a predicate that takes an index', () => { + const o = of('foo').pipe(find((s, index) => true)); // $ExpectType Observable +}); + +it('should support a predicate that takes an index and the source', () => { + const o = of('foo').pipe(find((s, index, source) => true)); // $ExpectType Observable +});