Improve cloneable-readable types (#35452)

* Improve cloneable-readable types

* Fix up formatting
This commit is contained in:
Oleg Vaskevich 2019-05-14 14:43:26 -07:00 committed by Nathan Shively-Sanders
parent 8dfd127a63
commit 5ba986198d
2 changed files with 15 additions and 5 deletions

View File

@ -9,3 +9,7 @@ process.stdin.pipe(cl).pipe(process.stdout);
cloneable.isCloneable(ps); // $ExpectType boolean
cloneable.isCloneable(cl); // $ExpectType boolean
if (cloneable.isCloneable(ps)) {
ps; // $ExpectType PassThrough & Readable & { clone(): Cloneable<Readable>; }
}

View File

@ -1,6 +1,7 @@
// Type definitions for cloneable-readable 1.1
// Type definitions for cloneable-readable 2.0
// Project: https://github.com/mcollina/cloneable-readable#readme
// Definitions by: Nikita Volodin <https://github.com/qlonik>
// Oleg Vaskevich <https://github.com/vaskevich>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2
@ -8,10 +9,15 @@
import { Readable } from 'stream';
type Cloneable<T> = T & { clone(): Cloneable<T> };
interface CloneableFn {
<T extends Readable>(x: T): Cloneable<T>;
isCloneable(x: Readable): boolean;
declare namespace cloneable {
type Cloneable<T extends Readable> = T & { clone(): Cloneable<T> };
}
interface CloneableFn {
<T extends Readable>(x: T): cloneable.Cloneable<T>;
isCloneable(x: Readable): x is cloneable.Cloneable<Readable>;
}
declare const cloneable: CloneableFn;
export = cloneable;