Могу ли я объявить вложенную группу типа, к которой можно получить доступ с помощью точечной записи в машинописном тексте?

#typescript

Вопрос:

Могу ли я объявить вложенную группу типа, к которой можно получить доступ с помощью точечной записи в машинописном тексте?

То, что я хочу сделать, похоже на приведенный ниже код:

 import { FuncA, FuncB } from './types' // <-- how should I write code in `types.ts` to access types like `FuncA.Param1` ?

export default class MyFunc {
  funcA(param1: FuncA.Param1, param2: FuncA.Param2): FuncA.Response {
    return blabla
  }

  async funcB(param1: FuncB.Param): Promise<FuncB.Response> {
    return blabla
  }
}

export {
  FuncA,
  FuncB,
}
 

Ответ №1:

Вы можете сделать это с пространствами имен:

 export namespace FuncA {
  export type Param1 = string | number
  export type Param2 = boolean
  export type Response = boolean
}

export namespace FuncB {
  export type Param = number
  export type Response = boolean
}