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

Is it possible to create an interface in a typescript method?

小注: 可能看起来很相似,但它问的是这个问题的反面。

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

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

它使用别处定义的接口:


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

同样,这工作正常。但是我觉得如果在方法体中定义接口对我的同事来说会更容易。

我可以在 typescript 方法中使用 options 对象并在方法主体中定义选项接口吗?

你可以这样做:

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