是否可以在打字稿方法中创建接口?

时间:2020-10-19 11:27:31

标签: node.js typescript oop interface

次要注意事项: Is it possible to include method in TypeScript interface?似乎很相似,但它询问的是相反的问题。

我有一个使用options参数的打字稿方法,该参数可以正常工作并编译良好:

  async addKickingRule(options: KickingRuleOptions = {
    time: 60 * MINUTES,
    privileges: ALL_PRIVILEGES
  }) {
    ...
  }

它使用在其他地方定义的接口:


interface KickingRuleOptions {
  time: number,
  privileges: Privileges[],
  channel?: string,
  userID?: string,
  ipAddress?: string
}

同样,这很好。但是,如果在该方法的主体中定义该接口,对于我的同事来说,这会更容易。

我可以在打字稿方法中使用options对象,并在方法主体中定义options接口吗?

1 个答案:

答案 0 :(得分:4)

您可以执行以下操作:

async addKickingRule(options: {
  time: number,
  privileges: Privileges[],
  channel?: string,
  userID?: string,
  ipAddress?: string
} = {
  time: 60 * MINUTES,
  privileges: ALL_PRIVILEGES
}) {
  ...
}