File: privateNamesInGenericClasses.types

package info (click to toggle)
node-typescript 4.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 396,552 kB
  • sloc: javascript: 1,444,377; makefile: 7; sh: 3
file content (46 lines) | stat: -rw-r--r-- 925 bytes parent folder | download
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
=== tests/cases/conformance/classes/members/privateNames/privateNamesInGenericClasses.ts ===
class C<T> {
>C : C<T>

    #foo: T;
>#foo : T

    bar(x: C<T>) { return x.#foo; }          // OK
>bar : (x: C<T>) => T
>x : C<T>
>x.#foo : T
>x : C<T>

    baz(x: C<number>) { return x.#foo; }     // OK
>baz : (x: C<number>) => number
>x : C<number>
>x.#foo : number
>x : C<number>

    quux(x: C<string>) { return x.#foo; }    // OK
>quux : (x: C<string>) => string
>x : C<string>
>x.#foo : string
>x : C<string>
}

declare let a: C<number>;
>a : C<number>

declare let b: C<string>;
>b : C<string>

a.#foo;                                   // Error
>a.#foo : any
>a : C<number>

a = b;                                    // Error
>a = b : C<string>
>a : C<number>
>b : C<string>

b = a;                                    // Error
>b = a : C<number>
>b : C<string>
>a : C<number>