TypeScript 中的接口和模型(角度 17)

问题描述 投票:0回答:1

有人可以帮我修改我的代码吗?

这是 Articlefournisseurs 模型:

import { Conditionnement } from "./conditionnements";
// import { IntefaceConditionnements, IntefaceConditionnement } from "./inteface-conditionnements";
import { InterfaceArticlefournisseurs } from "./interface-articlefournisseurs";

export class Articlefournisseur implements InterfaceArticlefournisseurs {
    id?: number | undefined;
    conditionnement: Conditionnement[];

    constructor(articlefournisseurInterface: InterfaceArticlefournisseurs) {
        this.conditionnement = articlefournisseurInterface.conditionnement;
    }
}

这是接口 InterfaceArticlefournisseurs :

import { IntefaceConditionnements } from "./inteface-conditionnements";

export interface InterfaceArticlefournisseurs {
    id?: number,
    conditionnement: IntefaceConditionnements[]
}

这是条件模型接口:

export interface IntefaceConditionnement {
    id?: number,
    articleId: number,
    idUniteCommande: number,
    coefficientAchatCommande: number,
    idUniteAchat: number,
    coefficientInventaireAchat: number,
    iduniteInventaire: number,
    coefficientInventaire: number,
    idUniteFt: number,
    articlefournisseurId: number,
}
export interface IntefaceConditionnements {
    conditionnements: IntefaceConditionnement[];
}

import { IntefaceConditionnements, IntefaceConditionnement } from "./inteface-conditionnements";

export class Conditionnement implements IntefaceConditionnements {
    conditionnements: IntefaceConditionnement[];

    constructor(conditionnements: IntefaceConditionnement[]){
        this.conditionnements = conditionnements;
    }

    *[Symbol.iterator]() {
        for (let conditionnement of this.conditionnements) {
            yield conditionnement;
        }
    }
}

我的问题是,当我尝试返回 Conditionnement 数据时,出现以下错误:“InterfaceConditionnements”类型中缺少属性“[Symbol.iterator]”,但“Conditionnement”类型中需要属性“[Symbol.iterator]”

我期望有这样的数据:

ArticleFournisseur.Conditionnement[0]:{...} 文章Fournisseur.Conditionnement[1]:{...}

并在我的项目的组件 html 中循环使用它。

angular interface nestjs-typeorm
1个回答
0
投票

您遇到的错误表明 TypeScript 期望 Conditionnement 类实现 [Symbol.iterator] 方法,因为它将其用作生成器函数。但是,在您的 IntefaceConditionnements 接口中,您尚未指定此方法。要解决此问题,您需要确保您的 IntefaceConditionnements 接口包含 [Symbol.iterator] 方法签名。

以下是修改 IntefaceConditionnements 接口以包含 [Symbol.iterator] 方法的方法:

export interface IntefaceConditionnements extends Iterable<IntefaceConditionnement> { conditionnements: IntefaceConditionnement[]; } 

© www.soinside.com 2019 - 2024. All rights reserved.