typescript 内部函数中的未知类型不会解析为外部函数中的字符串

n3h0vuf2  于 2022-12-14  发布在  TypeScript
关注(0)|答案(1)|浏览(131)

我有两个职能:func1()func2()
func1()func2内被调用。来自func1()的返回值作为func2()的返回值返回。

func2() {
   return func1()
}

func1()的返回类型为

interface Func1 {
  [key: string]: unknown
}

func2()的返回类型为

interface Func2 {
   my_key: string; 
}

func2()抱怨func1()的返回值不包含键my_key。在我看来,有一个键是stringunknown值应该与更具体的string一起工作。这显然不是真的。
有没有办法在不列出func2()的返回值中所需的每个键的情况下解决这个问题?func1在许多不同的函数中使用,这些函数具有许多不同的、更具体的返回类型。我需要它非常通用。

rwqw0loc

rwqw0loc1#

不,你不能修复这个没有列出的关键你需要在这种情况下。
一种可能的解决方案是令Func1扩展Func2

interface Func1 extends Func2 {
  [key: string]: unknown
}

func1func2的逻辑可能不正确。如果此解决方案在您的代码中没有意义,则需要提供更多详细信息。

部分详细信息:

[key: string]表示有一些键是字符串但不确保有一个名为my_key的键
unknown值不能分配给任何“已知”类型,如stringnumber ...,如果要禁用所有类型检查,应使用any而不是unknown

相关问题