在函数中定义接口

时间:2019-06-12 18:19:32

标签: typescript

抛开这个示例的强制性,是否有理由在函数中定义接口?除了一致性之外,还有其他原因不允许人们在函数中定义接口(而不是在文件级别或在共享接口/类型文件中作为导出)吗?

function Bar() {
  interface Foo {
    x: string;
    y: number;
  }

  return { x: 'bar', y: 2 } as Foo;
}

1 个答案:

答案 0 :(得分:0)

您可以像这样创建匿名类型声明:

function Bar(): { x: string; y: number; } {
  return { x: 'bar', y: 2 };
}

这很有用,如果您知道要在之前返回的内容,则可以编写代码来做到这一点,但是也无需显式声明任何“ being”类型。这样,任何与类型不匹配的return都会触发编译器错误。当您需要多个return语句时,这特别有用。

如果您想将其称为“类型”,则需要在顶级范围内声明它。