如何扩展打字稿接口?

时间:2018-10-17 14:50:33

标签: javascript angular typescript

因此,我具有用于请求的接口,该请求具有来自IoperationParam的标头,并且正文与对象数组的patientList相同,但是会引发错误PatientId不能分配给IGetSpecialtyQuestionsParam任何知道这里需要纠正什么?

main.interface.ts

    export interface IGetSpecialtyQuestionsParam extends IOperationParam {
        patientList: (ISpecialtyQuestionsEntity)[];
    }
    export interface ISpecialtyQuestionsEntity {
        /**
         * <H3>This maps to ESL patientId<H3>
         */
        patientId: string;
        /**
         * 1982-01-10
         */
        dateOfBirth: string;
        /**
         * Female
         */
        gender: "Male"|"Female";
        /**
         * We can default this;
         * Specialty HBS
         */

        sourceSystem: string;


        rxInfo?: (RxInfoEntity)[] | null;
    }

export interface IOperationParam {
    appName: string;
    appId: string
}

1 个答案:

答案 0 :(得分:2)

您似乎在混淆类和接口。接口仅定义数据的形状,而不定义默认值。

您的界面应为:

if (prevnum > num) {

您指出的错误:“ ... PatientId无法分配给IGetSpecialtyQuestionsParam ...”

之所以会发生,是因为export interface IOperationParam { appName: string; appId: string } export interface IGetSpecialtyQuestionsParam extends IOperationParam { patientList: ISpecialtyQuestionsEntity[]; } export interface ISpecialtyQuestionsEntity { patientId: string; dateOfBirth: string; gender: string; sourceSystem: string; rxInfo?: RxInfoEntity[]; } 扩展了IGetSpecialtyQuestionsParam,但没有属性:IOperationParam

因此,您需要在patientId界面中使用patientId,或者将其添加为IOperationParam界面的一部分,或者扩展一个通用的界面……最适合的方法您的应用。