assemblyscript icon indicating copy to clipboard operation
assemblyscript copied to clipboard

logic operator for 2 incompatible inherit class cause error

Open HerrCai0907 opened this issue 3 years ago • 0 comments

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)

HerrCai0907 avatar Aug 05 '22 03:08 HerrCai0907