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
|
tests/cases/compiler/declarationEmitExpressionInExtends3.ts(29,30): error TS4020: Extends clause of exported class 'MyClass' has or is using private name 'LocalClass'.
tests/cases/compiler/declarationEmitExpressionInExtends3.ts(37,31): error TS4020: Extends clause of exported class 'MyClass3' has or is using private name 'LocalInterface'.
==== tests/cases/compiler/declarationEmitExpressionInExtends3.ts (2 errors) ====
export class ExportedClass<T> {
x: T;
}
class LocalClass<T, U> {
x: T;
y: U;
}
export interface ExportedInterface {
x: number;
}
interface LocalInterface {
x: number;
}
function getLocalClass<T>(c: T) {
return LocalClass;
}
function getExportedClass<T>(c: T) {
return ExportedClass;
}
export class MyClass extends getLocalClass<LocalInterface>(undefined)<string, number> { // error LocalClass is inaccisible
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4020: Extends clause of exported class 'MyClass' has or is using private name 'LocalClass'.
}
export class MyClass2 extends getExportedClass<LocalInterface>(undefined)<string> { // OK
}
export class MyClass3 extends getExportedClass<LocalInterface>(undefined)<LocalInterface> { // Error LocalInterface is inaccisble
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4020: Extends clause of exported class 'MyClass3' has or is using private name 'LocalInterface'.
}
export class MyClass4 extends getExportedClass<LocalInterface>(undefined)<ExportedInterface> { // OK
}
|