Typescript中的复杂类型解析

Typescript中的复杂类型解析,typescript,types,interface,alias,Typescript,Types,Interface,Alias,我在Typescript中定义了一个非常复杂的类型: 导出类型DraftCamp=DeepPartial&{ isActive:错误 }文件扩展(&F) 它实际上只是一个带有嵌套值的接口-没有联合。是否有必要对这种类型进行一番观察,看看它实际上是什么样子的?我可以在不手动遵循它引用的所有其他类型的情况下执行此操作吗?您可以使用映射到交叉点的Id类型。无法保证什么将扩展出映射类型,但此类型当前执行以下操作: type Id<T> = {} & { [P in keyof

我在Typescript中定义了一个非常复杂的类型:

导出类型DraftCamp=DeepPartial&{
isActive:错误
}文件扩展(&F)

它实际上只是一个带有嵌套值的接口-没有联合。是否有必要对这种类型进行一番观察,看看它实际上是什么样子的?我可以在不手动遵循它引用的所有其他类型的情况下执行此操作吗?

您可以使用映射到交叉点的
Id
类型。无法保证什么将扩展出映射类型,但此类型当前执行以下操作:

type Id<T> = {} & {
  [P in keyof T]: Id<T[P]>
}


注意:我必须警告你,在具有相同成员的交叉点和展平类型之间存在一些神秘的可分配性规则,但它们的工作原理基本相同。其思想是
Id
非常类似于
控制台。log
对于调试非常有用,但不要将其放在生产代码中,您可以使用映射到交叉点的
Id
类型。无法保证什么将扩展出映射类型,但此类型当前执行以下操作:

type Id<T> = {} & {
  [P in keyof T]: Id<T[P]>
}


注意:我必须警告你,在具有相同成员的交叉点和展平类型之间存在一些神秘的可分配性规则,但它们的工作原理基本相同。想法是,
Id
很像一个
控制台。log
对调试很有用,但不要把它放在生产代码中

你的意思是像展开类型以查看所有成员这样的东西吗?正是这样的,我下面有个好消息,你是说扩展类型以查看所有成员?正是这样,我下面有个好消息,非常酷:)我使用的Intellij有一个问题-当我想在Intellij中使用它的功能“类型信息”(ctrl+shift+p)查看它的扩展版本时它不会扩展嵌套字段。另外,有没有办法将这样的扩展名转储到文本文件中,即出于文档目的?@癔症没有办法将其转储到文件中,我通常使用VSCode或游乐场,在那里你可以在工具提示中看到完整的扩展版本,你可以从那里复制它..如果你足够快:)这太酷了:)我使用的Intellij有一个问题-当我想在Intellij中看到它的扩展版本时,使用它的功能“类型信息”(ctrl+shift+p)它不会扩展嵌套字段。另外,有没有办法将这样的扩展名转储到文本文件中,即出于文档目的?@癔没有办法将其转储到文件中,我通常使用VSCode或游乐场,您可以在工具提示中获得完整的扩展版本,您可以从那里复制它。。如果您足够快:)