62 lines
2.1 KiB
Plaintext
62 lines
2.1 KiB
Plaintext
==== tests/cases/conformance/classes/members/classTypes/staticPropertyNotInClassType.ts (11 errors) ====
|
|
module NonGeneric {
|
|
class C {
|
|
fn() { return this; }
|
|
static get x() { return 1; }
|
|
~
|
|
!!! Accessors are only available when targeting ECMAScript 5 and higher.
|
|
static set x(v) { }
|
|
~
|
|
!!! Accessors are only available when targeting ECMAScript 5 and higher.
|
|
constructor(public a: number, private b: number) { }
|
|
static foo: string; // not reflected in class type
|
|
}
|
|
|
|
module C {
|
|
export var bar = ''; // not reflected in class type
|
|
}
|
|
|
|
var c = new C(1, 2);
|
|
var r = c.fn();
|
|
var r4 = c.foo; // error
|
|
~~~
|
|
!!! Property 'foo' does not exist on type 'C'.
|
|
var r5 = c.bar; // error
|
|
~~~
|
|
!!! Property 'bar' does not exist on type 'C'.
|
|
var r6 = c.x; // error
|
|
~
|
|
!!! Property 'x' does not exist on type 'C'.
|
|
}
|
|
|
|
module Generic {
|
|
class C<T, U> {
|
|
fn() { return this; }
|
|
static get x() { return 1; }
|
|
~
|
|
!!! Accessors are only available when targeting ECMAScript 5 and higher.
|
|
static set x(v) { }
|
|
~
|
|
!!! Accessors are only available when targeting ECMAScript 5 and higher.
|
|
constructor(public a: T, private b: U) { }
|
|
static foo: T; // not reflected in class type
|
|
~
|
|
!!! Static members cannot reference class type parameters.
|
|
}
|
|
|
|
module C {
|
|
export var bar = ''; // not reflected in class type
|
|
}
|
|
|
|
var c = new C(1, '');
|
|
var r = c.fn();
|
|
var r4 = c.foo; // error
|
|
~~~
|
|
!!! Property 'foo' does not exist on type 'C<number, string>'.
|
|
var r5 = c.bar; // error
|
|
~~~
|
|
!!! Property 'bar' does not exist on type 'C<number, string>'.
|
|
var r6 = c.x; // error
|
|
~
|
|
!!! Property 'x' does not exist on type 'C<number, string>'.
|
|
} |