【发布时间】:2021-01-19 20:22:44
【问题描述】:
域:
export interface IDepartamentProps {
departament_name: string;
manager_id: string;
}
export class Departament extends AggregateRoot<IDepartamentProps> {
get DepartamentName(): string {
return this.props.departament_name;
}
get ManagerID(): string {
return this.props.manager_id;
}
private constructor(props: IDepartamentProps, id?: string) {
super(props, id);
}
public static create = async (
props: IDepartamentProps,
id?: string,
): Promise<Departament> => {
const guardedProps = [
{ argument: props.departament_name, argumentName: 'departament_name' },
{ argument: props.manager_id, argumentName: 'manager_id' },
];
const guardResult = Guard.againstNullOrUndefinedBulk(guardedProps);
if (!guardResult.succeeded) throw new Error(guardResult.message);
const departament = new Departament(props, id);
const idWasProvided = !!id;
if (!idWasProvided) {
departament.when(new LocationCreatedEvent(departament));
}
return departament;
};
}
我的映射器:
export class DepartamentMapper<Departament> implements IMapper<Departament> {
constructor(private departamentCreator: DomainCreator<Departament>) {}
toPersistence(t: any): Departament {
throw new Error('Method not implemented.');
}
public toDomain = (raw: any): Departament => {
if (raw instanceof Departament) return raw;
};
}
但由于某种原因,在检查该值是否是我部门的实例时出现错误:
if (raw instanceof Departament) return raw;
我明白了:
Departament' 可以用任意类型实例化,该类型可以 无关
【问题讨论】:
标签: typescript