@enonic/ui-types

中文文档
0.7.0发布于 2026/11/04Apache-2.0TypeScriptES Module零依赖构建来源已验证近 30 天下载 2506

Enonic UIs 的共享类型脚本类型和行为合同

中文使用文档
文档目录4 节
  1. 挂载合同
  2. 形式和财产合同
  3. 校长和任务
  4. 主题

@ enonic/ ui 类型

类型和没有其它:没有运行时间,没有依赖,没有进口.

属于这里的有两种类型——基础域类型不止一个软件包或应用程序股份 (内容、主要内容、计划形状),以及程序之间的行为契约 如果双方必须商定一个形状,它们不能从对方进口. 由一个组件读取的道具类型不是其中之一.

pnpm add -D @enonic/ui-types

挂载合同

贝壳与其上载的模块之间的合同: 屏幕或面板,由 另一种应用程序,在运行时发现,并制成罐壳的容器。 壳 创建一个打开的阴影根, 将模块交给一个容器 和一个 Host和电话 mount;模块拥有容器内的一切,外壳拥有周围的页面.

类型这是什么
Readable<T>get() 对于当前值, listen 更改——它从不恢复订阅
ToastToneinfo, (中文(简体) ), success, (中文(简体) ), warning, (中文(简体) ), error 作为 @enonic/ui是因为 Toast 给他们起名
NotifyOptionsautoHide, (中文(简体) ), lifetimeMs
Host每个山都得到什么 baseUrl, (中文(简体) ), extension, (中文(简体) ), locale, (中文(简体) ), theme, (中文(简体) ), visible, (中文(简体) ), notify
Routed带url 段的挂载会添加什么: path, (中文(简体) ), navigate 与 NavigateOptions
RoutedHostHost & Routed 何等的接口 拥有一段的摩托
MountOptions<H>论点 mount数字 : container 财务报告和审定财务报表 host· ; H 默认为 Host
Unmount什麽 mount 返回,同步; 具有同位素且不能投掷
Mount<H>函数 模块的条目导出 —— 用此注释
Module<H>模块的输入输出整体

一个主机宣布其接口的交接方式是哪个; XP 设置' settings.section 手执a RoutedHost。一个宿主的山峰没有部分的手 Host 以自身能力扩展, 和一个模块 RoutedHost 不受影响。 类型不能表达的规则在 在TSDoc, 提供商读取它们:一个模块从不触及其容器外的页面, 每个跨越边界的字符串都是本地化的,一个模块实例可以服务于几个挂载和 Host.extension 说这是哪一个, 一个被取消的主机 回答每一次的电话 一个不op.

宣言提到DOM 自由用于 HTMLElement消费者的tsconfig必须包括它, 浏览器项目会做的.

形式和财产合同

XP自己的JS图书馆将一个表格和一棵财产树序列化为: lib-content 内容 类型, lib-schema 对于内容类型、混合或形式碎片,以及应用程序的服务器 它从描述器中读取,例如id提供者的配置——以及 @enonic/input-types 把它们读回来 同样的方言 @enonic-types/core 宣布为 FormItem,所以一个针对 XP 类型输入的服务器在没有铸模的情况下生成这些;在这里,每个字段 XP 省略是可选的, inputType 是任意字符串,一个配置值是 unknown,因为那是 来了.

类型这是什么
FormJson表格:按顺序排列的项目
FormItemJson一个项目—— InputJson, (中文(简体) ), ItemSetJson, (中文(简体) ), OptionSetJson, (中文(简体) ), LayoutJson 或者说 FormFragmentJson,通过 formItemType
FormItemType歧视者: Input, (中文(简体) ), ItemSet, (中文(简体) ), OptionSet, (中文(简体) ), Layout, (中文(简体) ), FormFragment
OccurrencesJsonminimum 财务报告和审定财务报表 maximum; 0 的最大值为无约束
InputConfigJson输入类型配置为 XP 的库发送它 —— 每个属性下的一个 scalar、 列表或对象
OptionSetOptionJson一个选项: name, (中文(简体) ), label, (中文(简体) ), default页:1 items
PropertyTreeJson属性树:其数组
PropertyArrayJson一个命名数组 ValueTypeName页:1 values
PropertyValueJson下方为平板 v 或树下筑巢 set
ValueTypeNamexP 知道的值类型, 如 ValueTypes 给他们起名

这个 { Input: { … } } 方言,每个项目有一个包装键 是Content Studio的 REST 说话 内容工作室的客户端, 而且不在这里.

设置外壳在这些类型背后的表现——保持活性,隐藏的山上听到什么, 取消 —— 与外壳一起记录在应用程序设置中 docs/extensions/。 。 。 .

校长和任务

人民党自己宣布的是一项主要任务: @enonic-types/core是因为 PrincipalKey, (中文(简体) ), User, (中文(简体) ), Group 财务报告和审定财务报表 Role, (中文(简体) ), @enonic-types/lib-task是因为 TaskInfo —— 在此复制一个浏览器 程序不需要服务器软件包,并以类型测试为主,以便输入一个值 这里可以分配。 服务器为摘要省略的字段是可选的 。 读取和构建密钥 接下来的任务就是 @enonic/ui-utilspart.

类型这是什么
PrincipalTypeuser, (中文(简体) ), group, (中文(简体) ), role ——主键自身前缀
UserKey, (中文(简体) ), GroupKey, (中文(简体) ), RoleKeyuser:<idProvider>:<id>, (中文(简体) ), group:<idProvider>:<id>, (中文(简体) ), role:<id> - 键是它的字符串
PrincipalKey任何三个
User, (中文(简体) ), Group, (中文(简体) ), Role键后的记录 : type, (中文(简体) ), key, (中文(简体) ), displayName以及那些东西
PrincipalUser | Group | Role,缩入 type
UserRecord, (中文(简体) ), GroupRecord, (中文(简体) ), RoleRecord, (中文(简体) ), PrincipalRecord同样的没有 type ——一个REST层所发送的,读作: Principal 以 toPrincipal 从 @enonic/ui-utils
TaskStateWAITING, (中文(简体) ), RUNNING, (中文(简体) ), FINISHED, (中文(简体) ), FAILED
TaskProgresscurrent 联 合 国 total,以及 info 任务报告的内容,完成后的结果
TaskInfo作为 XP 和内容工作室的任务资源来回答它

主题

主题偏好 XP的管理员应用程序通过一个存储条目共享. 阅读、写作 之后是 @enonic/ui-utilspart.

类型这是什么
Themelight, (中文(简体) ), dark, (中文(简体) ), system 用户选择什么; system 遵循操作系统
ResolvedThemelight, (中文(简体) ), dark ——何等一页作画,何等 Host.theme 携带

部分 Enonic UI 工具包。 。 。 .

版本与发布记录

@enonic/ui-types 共发布 8 个版本,首次发布于 2026/09/07;过去 12 个月发布了 8 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.7.0latest2026/11/049 天前
0.6.02026/10/2222 天前
0.5.22026/10/1530 天前
0.5.12026/10/1430 天前
0.5.02026/10/091 个月前
0.4.02026/09/281 个月前

关于 @enonic/ui-types 的常见问题

@enonic/ui-types 是什么?

Enonic UIs 的共享类型脚本类型和行为合同

如何安装 @enonic/ui-types?

在项目目录运行 npm install @enonic/ui-types,或使用 pnpm add / yarn add / bun add。

@enonic/ui-types 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@enonic/ui-types 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@enonic/ui-types 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@enonic/ui-types 可以商用吗?

@enonic/ui-types 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@enonic/ui-types 的下载量有多少?

根据 npm 官方下载统计,@enonic/ui-types 在 2026/10/14 – 2026/11/12 这 30 天内被下载 2,506 次,日均约 84 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@enonic/ui-types 还在维护吗?

最新版本 0.7.0 发布于 2026/11/04(9 天前);至今共发布 8 个版本,其中过去 12 个月发布了 8 个;首次发布于 2026/09/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。