Как объявить тип для функции со свойствами в TypeScript? - PullRequest
1 голос
/ 08 мая 2020

Я новичок в TypeScript и читал некоторые документы на веб-сайте TypeScript, но не уверен, правильно ли я понимаю. В этом сценарии я использую пакет, в котором нет доступных типов TypeScript (prismic-reactjs), и поэтому я пытаюсь объявить типы самостоятельно, чтобы избавиться от ошибок, пронизывающих мой проект.

Итак, в качестве основного c примера, как мне написать объявление для такой функции:

const foo = ({ bar }) =>  {
    return bar;
};

foo.baz = () => "string";

Я могу зайти так далеко:

declare module "my-module" {
  interface fooParams {
    bar: string;
  }

  export function foo({ bar }: fooParams): string;
}

Но я могу ' t выяснить, как включить свойство baz.

1 Ответ

1 голос
/ 08 мая 2020

Вы можете добиться этого, используя тип пересечения .

declare const foo: {
  baz: () => string
} & (({ bar }: {bar: string}) =>  string)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...