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 函数。每个方法指定输入参数和返回类型。
类型
类型是抽象的数据类型,可以由一个或多个构造器实现。支持多态和继承。