diff --git a/packages/core/src/base-client.ts b/packages/core/src/base-client.ts index 1214a50f..bafeb0b1 100644 --- a/packages/core/src/base-client.ts +++ b/packages/core/src/base-client.ts @@ -339,7 +339,7 @@ export class BaseTelegramClient extends EventEmitter { langCode: 'en', ...(opts.initConnectionOptions ?? {}), apiId, - query: null, + query: null as any, } } diff --git a/packages/tl-utils/src/codegen/types.ts b/packages/tl-utils/src/codegen/types.ts index e6409c66..eeda5c82 100644 --- a/packages/tl-utils/src/codegen/types.ts +++ b/packages/tl-utils/src/codegen/types.ts @@ -99,7 +99,7 @@ export function generateTypescriptDefinitionsForTlEntry( genericsIndex[it.name] = 1 if (idx !== 0) genericsString += ', ' - genericsString += `${it.name} extends ${tsType}` + genericsString += `${it.name} extends ${tsType} = ${tsType}` }) genericsString += '>' } diff --git a/packages/tl-utils/tests/codegen/reader.spec.ts b/packages/tl-utils/tests/codegen/reader.spec.ts index d0ac7364..be8b1f7f 100644 --- a/packages/tl-utils/tests/codegen/reader.spec.ts +++ b/packages/tl-utils/tests/codegen/reader.spec.ts @@ -73,6 +73,20 @@ describe('generateReaderCodeForTlEntry', () => { ) }) + it('generates code for constructors with arguments before flags field', () => { + test( + 'poll#86e18161 id:long flags:# quiz:flags.3?true question:string = Poll;', + 'var id=r.long(),', + 'flags=r.uint();', + 'return{', + "_:'poll',", + 'id:id,', + 'quiz:!!(flags&8),', + 'question:r.string(),', + '}' + ) + }) + it('generates code for constructors with multiple flags fields', () => { test( 'updates.channelDifferenceEmpty#3e11affb flags:# final:flags.0?true pts:int timeout:flags.1?int flags2:# can_delete_channel:flags2.0?true = updates.ChannelDifference;',