En la mayoría de los casos, las clases dentro de TypeScript son comparadas de forma estructural, es decir que aquellas que sean compatibles con otras pueden ser utilizadas como reemplazos aunque no existan vínculos como herencia o interfaces que las asocien.
class Persona {
nombre: string;
edad: number;
}
class Empleado {
nombre: string;
edad: number;
salario: number;
}
const p: Persona = new Empleado();