繁体   English   中英

将接口转换为 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']) {}

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

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

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

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

或解构:

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

无论哪种方式,你都会用一个对象来调用它,例如:

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

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

function createPerson(p: Person) {}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM