1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
class A {
length: 1
constructor() {
this.length = 1
}
}
class B {
length: 2
constructor() {
this.length = 2
}
}
function getTypedArray(flag: boolean) {
return flag ? new A() : new B();
}
function getTypedArrayConstructor(flag: boolean) {
return flag ? A : B;
}
const a = getTypedArray(true); // A | B
const b = getTypedArrayConstructor(false); // A constructor | B constructor
if (!(a instanceof b)) {
console.log(a.length); // Used to be property 'length' does not exist on type 'never'.
}
|