Skip to content

logic operator for 2 incompatible inherit class cause error #2407

Closed
@HerrCai0907

Description

@HerrCai0907
class A {}
class B extends A {}
class D extends A {}

export function testOr(v: B | null): void {
  let v0: A | null = v || new D();
  let v1: A | null = v && new D();
}
ERROR TS2322: Type 'assembly/index/D' is not assignable to type 'assembly/index/B | null'.
   :
 6 │ let v0: A | null = v || new D();
   │                         ~~~~~~~
   └─ in assembly/index.ts(6,27)

ERROR TS2322: Type 'assembly/index/D' is not assignable to type 'assembly/index/B | null'.
   :
 7 │ let v1: A | null = v && new D();
   │                         ~~~~~~~
   └─ in assembly/index.ts(7,27)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions