=== tests/cases/compiler/privacyTypeParametersOfClass.ts === class privateClass { >privateClass : privateClass } export class publicClass { >publicClass : publicClass } // TypeParameter_0_of_exported_class_1_has_or_is_using_private_type_2 export class publicClassWithPrivateTypeParameters { >publicClassWithPrivateTypeParameters : publicClassWithPrivateTypeParameters >T : T >privateClass : privateClass myMethod(val: T): T { // Error >myMethod : (val: T) => T >val : T >T : T >T : T return val; >val : T } } export class publicClassWithPublicTypeParameters { >publicClassWithPublicTypeParameters : publicClassWithPublicTypeParameters >T : T >publicClass : publicClass myMethod(val: T): T { // No Error >myMethod : (val: T) => T >val : T >T : T >T : T return val; >val : T } } class privateClassWithPrivateTypeParameters { >privateClassWithPrivateTypeParameters : privateClassWithPrivateTypeParameters >T : T >privateClass : privateClass myMethod(val: T): T { // No Error >myMethod : (val: T) => T >val : T >T : T >T : T return val; >val : T } } class privateClassWithPublicTypeParameters { >privateClassWithPublicTypeParameters : privateClassWithPublicTypeParameters >T : T >publicClass : publicClass myMethod(val: T): T { // No Error >myMethod : (val: T) => T >val : T >T : T >T : T return val; >val : T } } export class publicClassWithPublicTypeParametersWithoutExtends { >publicClassWithPublicTypeParametersWithoutExtends : publicClassWithPublicTypeParametersWithoutExtends >T : T myMethod(val: T): T { // No Error >myMethod : (val: T) => T >val : T >T : T >T : T return val; >val : T } } class privateClassWithPublicTypeParametersWithoutExtends { >privateClassWithPublicTypeParametersWithoutExtends : privateClassWithPublicTypeParametersWithoutExtends >T : T myMethod(val: T): T { // No Error >myMethod : (val: T) => T >val : T >T : T >T : T return val; >val : T } }