44 lines
842 B
TypeScript
44 lines
842 B
TypeScript
|
// @declaration: true
|
||
|
|
||
|
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
|
||
|
}
|
||
|
|
||
|
|
||
|
export class MyClass2 extends getExportedClass<LocalInterface>(undefined)<string> { // OK
|
||
|
}
|
||
|
|
||
|
|
||
|
export class MyClass3 extends getExportedClass<LocalInterface>(undefined)<LocalInterface> { // Error LocalInterface is inaccisble
|
||
|
}
|
||
|
|
||
|
|
||
|
export class MyClass4 extends getExportedClass<LocalInterface>(undefined)<ExportedInterface> { // OK
|
||
|
}
|