tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(6,14): error TS2527: The inferred type of 'obj' references an inaccessible 'unique symbol' type. A type annotation is necessary.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(15,14): error TS2527: The inferred type of 'classExpression' references an inaccessible 'unique symbol' type. A type annotation is necessary.


==== tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts (2 errors) ====
    declare const s: unique symbol;
    interface I { readonly readonlyType: unique symbol; }
    
    // not allowed when emitting declarations
    
    export const obj = {
                 ~~~
!!! error TS2527: The inferred type of 'obj' references an inaccessible 'unique symbol' type. A type annotation is necessary.
        method1(p: typeof s): typeof s {
            return p;
        },
        method2(p: I["readonlyType"]): I["readonlyType"] {
            return p;
        }
    };
    
    export const classExpression = class {
                 ~~~~~~~~~~~~~~~
!!! error TS2527: The inferred type of 'classExpression' references an inaccessible 'unique symbol' type. A type annotation is necessary.
        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) { }
    }