Как расширить типы хапи [Typescript]

Я пытаюсь добавить новый тип в существующие определения хапи... Я хочу добавить тип Сенека... Вот пример

interface SenecaMethods {
    act: any;
    add: any;
}

interface HapiServer extends Hapi.Server {
    info: any;
    seneca: SenecaMethods;
}

const server: HapiServer = new Hapi.Server();

Ошибка при возврате. Сервер не может быть назначен на HapiServer, свойство 'seneca' отсутствует в типе сервера.

Как можно добавить его методы seneca в Hapi.Server? Я могу поставить seneca как необязательный, но я не хочу, чтобы это было необязательным....

1 ответ

Решение

У вас есть несколько вариантов:

бросать:

const server: HapiServer = new Hapi.Server() as HapiServer;

//server.seneca === undefined

союз

const server: HapiServer = Object.assign(new Hapi.Server(),
    { seneca: { act: "foo", add: "bar" } }
  )

простираться

class MyHapiServer extends Hapi.Server {
  info: any;
  seneca: SenecaMethods;

  constructor(){
    super();
    this.seneca = {
      act:"foo", 
      add:"bar",
    }
  }
}

const server: MyHapiServer = new MyHapiServer();
Другие вопросы по тегам