TElement 对象是 Plate 文档中的一种 Node 类型,可以包含其他 TElement 节点或 Text 节点。
interface TElement {
children: Descendant[]
type: string
[key: string]: unknown
}元素行为
根据编辑器的配置,元素可以有不同的行为表现:
块级 vs 行内
元素可以是"块级"或"行内",由插件 node.isInline 定义:
- 块级元素只能与其他块级元素并列
- 行内元素可以与 Text 节点或其他行内元素并列
空元素 vs 非空元素
元素可以是"空元素"或"非空元素",由插件 node.isVoid 定义:
- 非空元素:Slate 负责渲染子节点(例如包含 Text 和行内子元素的段落)
- 空元素:子元素由 Element 的渲染代码处理
可标记的空元素
某些空元素可以通过插件 node.markableVoid 支持标记。例如,提及元素可能需要支持加粗或斜体格式。
ElementAPI
isElementType
检查一个值是否实现了 TElement 接口并且 elementKey 匹配指定值。默认检查 'type' 键。
isAncestor
检查一个值是否实现了 Ancestor 接口。
isElement
检查一个值是否实现了 TElement 接口。
isElementList
检查一个值是否是 TElement 对象的数组。
isElementProps
检查一组属性是否是 TElement 的部分。
matches
检查一个元素是否匹配一组属性。
类型
TElement
TElement 对象是 Plate 文档中的一种节点类型,可以包含其他元素节点或文本节点。根据编辑器配置,它们可以是"块级"或"行内"。
Element 是 TElement 的类型别名。
ElementEntry
Element entry 表示一个 Element 节点及其路径。
ElementOrTextOf
type ElementOrTextOf<E extends Editor> = ElementOf<E> | TextOf<E>;ElementOrTextOf 类型表示来自特定编辑器类型的元素或文本节点。
ElementOrTextIn
type ElementOrTextIn<V extends Value> = ElementIn<V> | TextIn<V>;ElementOrTextIn 类型表示来自特定值类型的元素或文本节点。
ElementOf
ElementOf 是一个工具类型,用于从给定的根节点类型获取所有元素节点类型。
ElementIn
type ElementIn<V extends Value> = ElementOf<V[number]>;ElementIn 是一个工具类型,用于从 Plate Value 类型获取元素类型。