TL Schema

Telegram Type Language (TL) 是一种用于描述数据结构的领域特定语言,用于 Telegram API

类型定义

定义所有 API 方法的输入输出类型

跨平台

支持自动生成多种编程语言的代码

结构化

清晰的层次结构,易于理解和使用

版本控制

Schema 版本化管理,向后兼容

什么是 TL?

Type Language

TL (Type Language) 是 Telegram 开发的一种用于描述数据类型和 API 方法的语言。它类似于接口定义语言(IDL),但专门为 Telegram 的需求设计。 TL Schema 定义了所有 Telegram API 方法、它们的参数和返回类型。

为什么使用 TL?

  • 跨平台一致性:确保所有客户端实现使用相同的数据结构
  • 自动代码生成:可以自动生成各种编程语言的客户端代码
  • 类型安全:编译时检查类型错误,减少运行时错误
  • 版本管理:清晰的版本控制,支持 API 演进

基本语法示例

类型构造器

user#d10d979a id:int first_name:string last_name:string
  username:string phone_number:string = User;

定义一个 User 类型,包含 ID、姓名、用户名和电话号码字段。

方法定义

messages.sendMessage#520c3870 peer:InputPeer message:string
  random_id:long = Updates;

定义发送消息的 API 方法,接受接收者、消息内容和随机 ID 参数,返回 Updates 类型。

多态类型

inputPeerUser#7b8e7de6 user_id:int access_hash:long = InputPeer;
inputPeerChat#179be863 chat_id:int = InputPeer;
inputPeerChannel#20adaef8 channel_id:int access_hash:long = InputPeer;

定义 InputPeer 的多个构造器,支持不同类型的聊天对象。

主要组件

Layer 版本

Schema 通过 Layer 号进行版本控制。每次 API 更新都会增加 Layer 号,确保客户端和服务器使用兼容的版本。

构造器

构造器定义了如何创建特定类型的对象。每个构造器都有一个唯一的 ID(以十六进制表示)。

方法

方法定义了可以调用的 API 函数。每个方法指定输入参数和返回类型。

类型

类型是抽象的数据类型,可以由一个或多个构造器实现。支持多态和继承。

查看完整 Schema

访问官方文档查看完整的 TL Schema 定义和详细说明