相关疑难解决方法(0)

TypeScript中的循环类型引用

我是打字稿的新手,我想了解如何在两种类型之间设置循环引用.引用不必是完整的代码引用,只需要接口,但接口定义在单独的文件中.例如,假设我有两个接口:Parent和Child.它们是双重关联的,因此父母有一个孩子的集合,每个孩子都有父母的参考(如下所示).如何设置导入或依赖项,以便可以在单独的文件中定义它们?

interface Parent {
  children: Child[]
}

interface Child {
  parent: Parent
}
Run Code Online (Sandbox Code Playgroud)

typescript

16
推荐指数
3
解决办法
7831
查看次数

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

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

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

对于这个问题,我可以想到两种解决方案:

  1. 在同一个文件中定义两个模型
  2. 重新创建Form的接口Opportunity文件/中Opportunity的接口Form文件。

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

更新 2

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

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

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

有没有办法导入刚才一类的相关接口?

更新 3

只是要清楚,目前OpportunityForm看起来像这样:

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

export class …
Run Code Online (Sandbox Code Playgroud)

typescript angular

6
推荐指数
2
解决办法
5138
查看次数

标签 统计

typescript ×2

angular ×1