Да, это возможно:
example-class.ts
export abstract class ExampleAbstractClass {
abstract exampleMethod(): string;
}
export class ExampleClass {
exampleMethod(): string { return 'test'; }
}
export interface ExampleClass extends ExampleAbstractClass {} // NOTICE: usage of interface!
example-class.test.ts
import { ExampleClass, ExampleAbstractClass } from "./example-class";
const a: ExampleAbstractClass = new ExampleClass(); // works!
console.log(a.exampleMethod());
Вам придется использовать interface
вместе с class
, поскольку объединение объявлений классов в TypeScript запрещено. Вы также можете дополнить модуль , который определяет и реализует ExampleClass
в отдельных файлах, используя declare module "<path to implementation source file>" {}
.