=== tests/cases/compiler/genericInterfaceImplementation.ts === interface IOption { >IOption : IOption >A : A get(): A; >get : () => A >A : A flatten(): IOption; >flatten : () => IOption >B : B >IOption : IOption >B : B } class None implements IOption{ >None : None >T : T >IOption : IOption >T : T get(): T { >get : () => T >T : T throw null; >null : null } flatten() : IOption { >flatten : () => IOption >U : U >IOption : IOption >U : U return new None(); >new None() : None >None : typeof None >U : U } }