示例文档不可分配给类型 T



我是TypeScript的新手,并试图使用它来掌握OOP。

我有以下代码:

import {ReadOnlyDocument} from "../../docs/read-only.document";
import {IReadOnlyRepository} from "./abstract/Iread-only.repository";
import {sampleDocument} from "../../docs/sampleDocument";
export abstract class ReadOnlyRepository<T extends ReadOnlyDocument> implements IReadOnlyRepository<T> {
public getById(id: string): T {
let sample: sampleDocument = new sampleDocument('',
new Date(),
'',
new Date(),
'');
/*Line of code that brings the error.*/
return sample;
}
}

但是,我不断收到错误sampleDocument无法分配给T类型,我似乎无法弄清楚出了什么问题。任何帮助将不胜感激。

我在下面添加了其他可能相关的代码。

import {ReadOnlyDocument} from "./read-only.document";
export class sampleDocument extends ReadOnlyDocument{
}
export abstract class Document {
constructor(
public id: string,
public createdDate: Date,
public createdBy: string,
public updatedDate: Date,
public updatedBy: string
) { }
}
import { Document } from './abs/document'
export abstract class ReadOnlyDocument extends Document{
}
import {ReadOnlyDocument} from "../../../docs/read-only.document";
import { IRepository } from "./Irepository";
export interface IReadOnlyRepository<T extends ReadOnlyDocument> extends IRepository<T> {
getById(id: string): T;
}
import {Document} from "../../../domain/documents/abstract/document";
export interface IRepository<T extends Document>  {
}

TReadOnlyDocument的任何子类型,所以例如,如果你有一个ReadOnlyPDF并且扩展了ReadOnlyDocument,那么你可以构造一个ReadOnlyRepository<ReadOnlyPDF>,并且你期望它从getById返回一个ReadOnlyPDF,但它只返回一个ReadOnlyDocument

相关内容

最新更新