Какой тип набора должен быть для функции? - PullRequest
0 голосов
/ 27 апреля 2018

Каким должен быть тип ввода (класс, пространство имен или другое) для функции?

Мой JS-файл имеет следующую структуру:

export function MyFunction(param1, param2) {

  const executeRequest = (payload) => { ... }
  this.on = (evt, cb) => { ... }
  this.off= (evt, cb) => { ... }

}

1 Ответ

0 голосов
/ 27 апреля 2018

Функция выглядит как функция конструктора, так как она обращается к this, но выглядит автономно. Он назначает двух членов on и off, которые являются функциями. Не уверен, что делает executeRequest, если он используется внутри функции, вам не нужно объявлять его в открытом интерфейсе. Итак, определение, которое я бы использовал:

declare class MyFunction {
    constructor(param1: any, param2: any);
    on: (evt: any, cb: any) => void;
    off: (evt: any, cb: any) => void;
}
// Usage
let o = new MyFunction(null, null)

Вы можете подумать о замене any, если вам известен какой-либо из типов параметров, но они не понятны из опубликованного кода.

...