gpt4 book ai didi

angular - 导入typescript类型导致的循环依赖

转载 作者:太空狗 更新时间:2023-10-29 18:19:12 24 4
gpt4 key购买 nike

我正在用 typescript 对从服务器发送到我的 Angular 应用程序的数据进行建模。 Opportunity 有一个 forms 属性,其中包含一个 Form[] 对象数组。 Form 有一个 parent 属性,它可能包含一个 Opportunity。为了解析类型,定义 Opportunity 的文件导入 Form,定义 Form 的文件导入 Opportunity .这会产生循环依赖警告。

我之前发现了几个处理循环依赖的 SO 问题(herehere),但在每种情况下,它们都在处理 javascript 代码中的循环依赖。在这种情况下,循环依赖仅与 typescript 类型有关,编译后将不存在。有没有办法在文件中包含一个类型,同时避免这种循环依赖问题?到目前为止,我还没有找到任何东西。

我可以想到两个解决这个问题的方法:

  1. 在同一个文件中定义两个模型
  2. Opportunity 文件中重新创建 Form 界面/在 Form 文件中重新创建 Opportunity 界面。<

还有其他/更好的解决方案吗?谢谢!

更新2

我似乎找到了 an answer (出于某种原因,它在问题列表中真的很靠后)。这个答案提出了两种可能性

  1. 创建一个单独的定义文件(这似乎涉及重新创建 OpportunityForm 类接口(interface),因此不会比上面的选项 #2 更好) .

  2. 使用导入,这是我已经在做的(并且导致循环依赖性警告)。

有没有办法导入类的关联接口(interface)?

更新3

需要说明的是,目前 OpportunityForm 如下所示:

// opportunity.ts
import { Form } from '....../form'

export class Opportunity {
public forms: Form[] = [];
}

// form.ts
import { Opportunity } from '....../opportunity'

export class Form {
public parent: Opportunity;
}

最佳答案

来自 typescript 3.8 版

import type 会帮助你。

https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html

关于angular - 导入typescript类型导致的循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48418317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com