Encontré este artículo , que explica cómo dividir una clase en TypeScript, sin embargo, el código parece estar en el mismo archivo
// the original class class Employee { doWork: void { } } // extend it interface Employee { goToLunch(): void; } Employee.prototype.goToLunch = function(){ }¿alguien podría dar un ejemplo sobre cómo extender/dividir una clase mecanografiada en varios archivos?
Yo uso Angular en mi proyecto.
Mueva la interfaz y la clase a sus propios archivos y agregue el modificador de exportación para la interfaz. Cuando use la interfaz en el archivo de clase, deberá importarlo (su IDE de elección probablemente ya lo sugiera). En la clase en sí, puede usar la palabra clave implements para usar la interfaz.
Esta forma de usar interfaces y archivos separados funcionará para Angular y Typescript regular
// Employee.interface.ts export interface IEmployee { goToLunch(): void; } // Employee.model.ts import { IEmployee } from "./employee.interface"; class Employee implements IEmployee { goToLunch(): void { // Implement goToLunch logic here } }Si tiene una clase que desea extender, la sintaxis es muy similar a usar una interfaz. Y también se puede hacer desde diferentes archivos.
// WorkEmployee.model.ts export class WorkEmployee { goToWork(): void { // Implement goToWork logic here } } // Employee.model.ts import { IEmployee } from "./employee.interface"; import { WorkEmployee } from "./work-employee.model"; class Employee extends WorkEmployee implements IEmployee { goToLunch(): void { throw new Error("Method not implemented."); } }Este empleado tendrá tanto la lógica de sí mismo (goToLunch) como la clase extendida (goToWork)