Как расширить типы хапи [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();