334b8eaa57
* Add failing test case. * Handle 'this' assignments on class static blocks in JavaScript. * Accepted baselines.
30 lines
1.3 KiB
Plaintext
30 lines
1.3 KiB
Plaintext
/src/a.js(10,7): error TS2417: Class static side 'typeof ElementsArray' incorrectly extends base class static side '{ isArray(arg: any): arg is any[]; readonly prototype: any[]; }'.
|
|
Types of property 'isArray' are incompatible.
|
|
Type '(arg: any) => boolean' is not assignable to type '(arg: any) => arg is any[]'.
|
|
Signature '(arg: any): boolean' must be a type predicate.
|
|
|
|
|
|
==== /src/a.js (1 errors) ====
|
|
class Thing {
|
|
static {
|
|
this.doSomething = () => {};
|
|
}
|
|
}
|
|
|
|
Thing.doSomething();
|
|
|
|
// GH#46468
|
|
class ElementsArray extends Array {
|
|
~~~~~~~~~~~~~
|
|
!!! error TS2417: Class static side 'typeof ElementsArray' incorrectly extends base class static side '{ isArray(arg: any): arg is any[]; readonly prototype: any[]; }'.
|
|
!!! error TS2417: Types of property 'isArray' are incompatible.
|
|
!!! error TS2417: Type '(arg: any) => boolean' is not assignable to type '(arg: any) => arg is any[]'.
|
|
!!! error TS2417: Signature '(arg: any): boolean' must be a type predicate.
|
|
static {
|
|
const superisArray = super.isArray;
|
|
const customIsArray = (arg)=> superisArray(arg);
|
|
this.isArray = customIsArray;
|
|
}
|
|
}
|
|
|
|
ElementsArray.isArray(new ElementsArray()); |