How to generate function multiple args types from an object type

  Kiến thức lập trình
type TMakeEmberPostMessageParams<dataT> = {
  type: string,
  data: unknown,
  mockSource?: (type: string, data: unknown) => (Promise<dataT> | dataT),
  defaultDelay?: number,
  settingName?: string,
  requestId?: string | number,
 };

type TMakeEmberPostMessage<dataT> = (
  type: TMakeEmberPostMessageParams<dataT>['type'],
  data: TMakeEmberPostMessageParams<dataT>['data'],
  mockSource?: TMakeEmberPostMessageParams<dataT>['mockSource'],
  defaultDelay?: TMakeEmberPostMessageParams<dataT>['defaultDelay'],
  settingName?: TMakeEmberPostMessageParams<dataT>['settingName'],
  requestId?: TMakeEmberPostMessageParams<dataT>['requestId'],
) => Promise<dataT>;

Is there a way to generate the args type for TMakeEmberPostMessage from TMakeEmberPostMessageParams, without specifying each argument types? That means converting the object type into multiple function argument types.

I can’t change TMakeEmberPostMessage params to a single object as it’s used in different codebases.

2

LEAVE A COMMENT