File: privateNamesAndStaticFields.types

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (54 lines) | stat: -rw-r--r-- 1,047 bytes parent folder | download | duplicates (4)
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
47
48
49
50
51
52
53
54
=== tests/cases/conformance/classes/members/privateNames/privateNamesAndStaticFields.ts ===
class A {
>A : A

    static #foo: number;
>#foo : number

    static #bar: number;
>#bar : number

    constructor () {
        A.#foo = 3;
>A.#foo = 3 : 3
>A.#foo : number
>A : typeof A
>3 : 3

        B.#foo; // Error
>B.#foo : any
>B : typeof B

        B.#bar; // Error
>B.#bar : any
>B : typeof B
    }
}

class B extends A {
>B : B
>A : A

    static #foo: string;
>#foo : string

    constructor () {
        super();
>super() : void
>super : typeof A

        B.#foo = "some string";
>B.#foo = "some string" : "some string"
>B.#foo : string
>B : typeof B
>"some string" : "some string"
    }
}

// We currently filter out static private identifier fields in `getUnmatchedProperties`.
// We will need a more robust solution when we support static fields
const willErrorSomeDay: typeof A = class {}; // OK for now
>willErrorSomeDay : typeof A
>A : typeof A
>class {} : typeof willErrorSomeDay