File: uniqueSymbolsDeclarationsErrors.js

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 (151 lines) | stat: -rw-r--r-- 3,766 bytes parent folder | download | duplicates (2)
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
//// [uniqueSymbolsDeclarationsErrors.ts]
declare const s: unique symbol;
interface I { readonly readonlyType: unique symbol; }

// not allowed when emitting declarations

export const obj = {
    method1(p: typeof s): typeof s {
        return p;
    },
    method2(p: I["readonlyType"]): I["readonlyType"] {
        return p;
    }
};

export const classExpression = class {
    method1(p: typeof s): typeof s {
        return p;
    }
    method2(p: I["readonlyType"]): I["readonlyType"] {
        return p;
    }
};

export function funcInferredReturnType(obj: { method(p: typeof s): void }) {
    return obj;
}

export interface InterfaceWithPrivateNamedProperties {
    [s]: any;
}

export interface InterfaceWithPrivateNamedMethods {
    [s](): any;
}

export type TypeLiteralWithPrivateNamedProperties = {
    [s]: any;
}

export type TypeLiteralWithPrivateNamedMethods = {
    [s](): any;
}

export class ClassWithPrivateNamedProperties {
    [s]: any;
    static [s]: any;
}

export class ClassWithPrivateNamedMethods {
    [s]() {}
    static [s]() {}
}

export class ClassWithPrivateNamedAccessors {
    get [s](): any { return undefined; }
    set [s](v: any) { }
    static get [s](): any { return undefined; }
    static set [s](v: any) { }
}

//// [uniqueSymbolsDeclarationsErrors.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ClassWithPrivateNamedAccessors = exports.ClassWithPrivateNamedMethods = exports.ClassWithPrivateNamedProperties = exports.funcInferredReturnType = exports.classExpression = exports.obj = void 0;
// not allowed when emitting declarations
exports.obj = {
    method1(p) {
        return p;
    },
    method2(p) {
        return p;
    }
};
const classExpression = class {
    method1(p) {
        return p;
    }
    method2(p) {
        return p;
    }
};
exports.classExpression = classExpression;
function funcInferredReturnType(obj) {
    return obj;
}
exports.funcInferredReturnType = funcInferredReturnType;
class ClassWithPrivateNamedProperties {
}
exports.ClassWithPrivateNamedProperties = ClassWithPrivateNamedProperties;
class ClassWithPrivateNamedMethods {
    [s]() { }
    static [s]() { }
}
exports.ClassWithPrivateNamedMethods = ClassWithPrivateNamedMethods;
class ClassWithPrivateNamedAccessors {
    get [s]() { return undefined; }
    set [s](v) { }
    static get [s]() { return undefined; }
    static set [s](v) { }
}
exports.ClassWithPrivateNamedAccessors = ClassWithPrivateNamedAccessors;


//// [uniqueSymbolsDeclarationsErrors.d.ts]
declare const s: unique symbol;
interface I {
    readonly readonlyType: unique symbol;
}
export declare const obj: {
    method1(p: typeof s): typeof s;
    method2(p: I["readonlyType"]): I["readonlyType"];
};
export declare const classExpression: {
    new (): {
        method1(p: typeof s): typeof s;
        method2(p: I["readonlyType"]): I["readonlyType"];
    };
};
export declare function funcInferredReturnType(obj: {
    method(p: typeof s): void;
}): {
    method(p: typeof s): void;
};
export interface InterfaceWithPrivateNamedProperties {
    [s]: any;
}
export interface InterfaceWithPrivateNamedMethods {
    [s](): any;
}
export type TypeLiteralWithPrivateNamedProperties = {
    [s]: any;
};
export type TypeLiteralWithPrivateNamedMethods = {
    [s](): any;
};
export declare class ClassWithPrivateNamedProperties {
    [s]: any;
    static [s]: any;
}
export declare class ClassWithPrivateNamedMethods {
    [s](): void;
    static [s](): void;
}
export declare class ClassWithPrivateNamedAccessors {
    get [s](): any;
    set [s](v: any);
    static get [s](): any;
    static set [s](v: any);
}
export {};