В действиях в клиентской библиотеке Google Node.js v2 есть промежуточное ПО, которое позволяет добавлять свойства или вспомогательные классы к экземпляру conv
. Пример из официального руководства по миграции версии 1:
const { dialogflow } = require('actions-on-google');
class Helper {
constructor(conv) {
this.conv = conv;
}
func1() {
this.conv.ask(`What's up?`);
}
}
const app = dialogflow()
.middleware(conv => {
conv.helper = new Helper(conv);
});
app.intent('Default Welcome Intent', conv => {
conv.helper.func1();
});
Это может нормально работать для простого JavaScript. Но что, если используется TypeScript?
Если код написан на Typescript, TSC жалуется на строки conv.helper = new Helper(conv);
и conv.helper.func1();
:
[ts] Свойство 'helper' не существует для типа 'DialogflowConversation ‹{}, {}, Contexts>'.
Возможно, я мог бы переписать его на (<any>conv).helper
, но это довольно некрасиво. Кто-нибудь знает (лучшее) решение?