假设存在不同的实体用户,角色,任务
所有这些实体共有createdBy
,updatedBy
,createdOn
,updatedOn
。
我想知道如何创建基础实体,以便所有实体都使用Typeform扩展嵌套js中的基类。
答案 0 :(得分:1)
这是应该使用继承的地方。
基本上,这个想法是让一个基类/实体收集通用的逻辑或结构,而其他许多类/实体则共享该通用逻辑或结构。
例如: 猫,狗,大象都具有相似的特征,因此我们可能希望将所有这些相似的特征收集在一个地方,以避免逻辑和代码的重复。
因此,让我们看一下最简单的示例只是为了基本了解。
export class Animal {
protected numberOfLegs: number;
protected sound(): void;
}
export class Dog extends Animal {
constructor() {
super();
this.numberOfLegs = 4;
}
sound(): void {
console.log('BARK');
}
}
满足您的需求:
导出基本实体。
import { Entity, Column } from 'typeorm';
export class BaseEntity {
@Column()
createdBy: string;
@Column()
updatedBy: string;
@Column()
createdOn: Date;
@Column()
updatedOn: Date;
}
然后从派生实体继承它。
import { Entity, Column } from 'typeorm';
import {BaseEntity} from './base-entity';
export class DerivedEntity extends BaseEntity {
@Column()
id: string;
...
}
请阅读有关继承的知识,这是编程和OOP中的一项基本且非常重要的原则。