Open
Description
Bug Report
π Search Terms
preserve type alias
π Version & Regression Information
- This changed between versions 4.1.5 and 4.2.2
β― Playground Link
Playground link with relevant code
π» Code
type Brand<K, T> = K & { __brand: T };
type BrandedUnknown<T> = Brand<"unknown", T>;
type Maybe<T> = T | BrandedUnknown<T>;
class Foo {
public readonly maybe: Maybe<boolean> | undefined;
}
declare const foo: Foo;
const test = {
prop: foo.maybe || false,
// 4.1.5 (good): Maybe<boolean>
// 4.2.2 (bad): boolean | BrandedUnknown<boolean>
}
π Actual behavior
test.prop
has type boolean | BrandedUnknown<boolean>
which lost the connection to Maybe<boolean>
π Expected behavior
test.prop
should have type Maybe<boolean>
like in previous versions.