将接口转换为Typescript中的函数参数

Convert interface into Function parameters in Typescript

我想知道的是是否可以使用接口来描述需要传递给函数的参数。示例如下:

  interface Person {
      name: string;
      age: number;   
  }

  function createPerson(name: string, age: number) {}

我想使用 Person 接口作为 createPerson 参数的参考。到目前为止,我一直在使用这个:

function createPerson(name: Person['name'], age: Person['age']) {}

虽然总比没有好,但我仍然不知道这是否是我执行此操作的最佳方法,因为我仍然需要重写所有参数名称。有更好的选择吗?提前致谢。

您可以使函数接受 1 个对象而不是 2 个单独的参数。例如,您可以这样做。

function createPerson(p: Person) {}

我 99.9% 确定没有办法像那样“传播”接口的类型定义,尤其是因为接口没有顺序而函数参数有顺序。

您可以执行问题中显示的操作,或者直接接受 Person 对象:

function createPerson(person: Person) { /* ... */ }

或解构:

function createPerson({name, age}: Person) { /* ... */ }

无论哪种方式,您都可以使用对象来调用它,例如:

const createdPerson = createPerson({name: "Aylton Almeida", age: 20});