Импорт telegraf в модуле nestjs
Создал простой модуль (telegram-bot) в приложении nestjs
src\telegram-bot\telegram-bot.module.ts:
import { Module } from '@nestjs/common';
import { TelegramBotService } from './telegram-bot.service';
@Module({
providers: [TelegramBotService],
})
export class TelegramBotModule {}
src\telegram-bot\telegram-bot.service.ts:
import { Injectable, OnApplicationBootstrap } from '@nestjs/common';
import { Telegraf } from 'telegraf';
import config from 'config';
interface TelegramConfig {
token: string
}
const TELEGRAM_CONFIG: TelegramConfig = config.get('telegram');
@Injectable()
export class TelegramBotService implements OnApplicationBootstrap {
private bot: Telegraf;
onApplicationBootstrap(): void {
const { token } = TELEGRAM_CONFIG;
this.bot = new Telegraf(token);
this.bot.start((ctx) => ctx.reply('Hello'));
this.bot.launch();
}
}
При компиляции проекта получаю ошибки в консоли:
node_modules/telegraf/typings/composer.d.ts:30:25 - error TS1005: ']' expected.
30 [P in tt.UpdateType as SnakeToCamelCase<P>]: PropOr<U, P, undefined>;
~~
node_modules/telegraf/typings/composer.d.ts:30:28 - error TS1005: ';' expected.
30 [P in tt.UpdateType as SnakeToCamelCase<P>]: PropOr<U, P, undefined>;
~~~~~~~~~~~~~~~~
node_modules/telegraf/typings/composer.d.ts:30:47 - error TS1005: '(' expected.
30 [P in tt.UpdateType as SnakeToCamelCase<P>]: PropOr<U, P, undefined>;
~
node_modules/telegraf/typings/composer.d.ts:30:48 - error TS1135: Argument expression expected.
30 [P in tt.UpdateType as SnakeToCamelCase<P>]: PropOr<U, P, undefined>;
~
node_modules/telegraf/typings/composer.d.ts:30:73 - error TS1005: '(' expected.
30 [P in tt.UpdateType as SnakeToCamelCase<P>]: PropOr<U, P, undefined>;
~
node_modules/telegraf/typings/composer.d.ts:31:1 - error TS1128: Declaration or statement expected.
31 } & {
~
node_modules/telegraf/typings/composer.d.ts:31:3 - error TS1109: Expression expected.
31 } & {
~
node_modules/telegraf/typings/composer.d.ts:32:14 - error TS1005: ',' expected.
32 update: U;
~
node_modules/telegraf/typings/composer.d.ts:33:31 - error TS1005: '(' expected.
33 updateType: UpdateTypes<U>;
~
node_modules/telegraf/typings/composer.d.ts:34:41 - error TS1005: '(' expected.
34 senderChat: Getter<U, 'sender_chat'>;
~
node_modules/telegraf/typings/composer.d.ts:35:28 - error TS1005: '(' expected.
35 from: Getter<U, 'from'>;
~
node_modules/telegraf/typings/composer.d.ts:36:28 - error TS1005: '(' expected.
36 chat: Getter<U, 'chat'>;
~
node_modules/telegraf/typings/core/helpers/string.d.ts:1:68 - error TS1110: Type expected.
1 export declare type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : `${S}`;
~~~
node_modules/telegraf/typings/core/helpers/string.d.ts:1:77 - error TS1005: '}' expected.
1 export declare type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : `${S}`;
~
node_modules/telegraf/typings/core/helpers/string.d.ts:1:78 - error TS1128: Declaration or statement expected.
1 export declare type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : `${S}`;
~
node_modules/telegraf/typings/core/helpers/string.d.ts:1:81 - error TS1005: ';' expected.
1 export declare type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : `${S}`;
~
node_modules/telegraf/typings/core/helpers/string.d.ts:1:88 - error TS1005: ';' expected.
1 export declare type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : `${S}`;
~
node_modules/telegraf/typings/core/helpers/string.d.ts:1:95 - error TS1005: ';' expected.
1 export declare type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : `${S}`;
~
node_modules/telegraf/typings/core/helpers/string.d.ts:1:96 - error TS1005: ';' expected.
1 export declare type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : `${S}`;
~
node_modules/telegraf/typings/core/helpers/string.d.ts:1:100 - error TS1005: ';' expected.
1 export declare type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : `${S}`;
~
node_modules/telegraf/typings/core/helpers/string.d.ts:1:132 - error TS1005: '(' expected.
1 export declare type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : `${S}`;
~
node_modules/telegraf/typings/core/helpers/string.d.ts:1:138 - error TS1005: ';' expected.
1 export declare type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : `${S}`;
~
node_modules/telegraf/typings/core/helpers/string.d.ts:1:139 - error TS1005: ';' expected.
1 export declare type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : `${S}`;
~
node_modules/telegraf/typings/core/helpers/string.d.ts:2:37 - error TS1160: Unterminated template literal.
2 //# sourceMappingURL=string.d.ts.map
Помогите пожалуйста разобраться с проблемой!
P.S. В другом приложении на typescript (без использования какого-либо фреймворка) все компилируется и запускается нормально, как и должно быть. Не знаю в чем проблема, в nest? Или у меня в проекте? Судя по гуглению ни у кого подобной проблемы не возникало (ну или никто не описывал её в инете)
Ответы (1 шт):
Проблема оказалось в версии typescript. У меня в проекте стояла версия 4.0.5, когда обновился до 4.2.3 все скомпилировалось без ошибок. Версия telegraf 4.2.1