@finos/fdc3-context

中文文档
3.0.0发布于 2026/10/26Apache-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 3.5万

此文件夹包含 Typescription 接口, 由上下文 JSONSchema 生成的 ContextTypes.ts ()https://json-schema.org/ (中文(简体) )通过快取类型的文件( )https://quicktype.io/ 互联网档案馆的存檔,存档日期2013-12-02) (中文(简体) ).

中文使用文档

背景类型生成 README

此文件夹包含 Typescription 接口, 由上下文 JSONSchema 生成的 ContextTypes.ts ()https://json-schema.org/ (中文(简体) )通过快取类型的文件( )https://quicktype.io/ 互联网档案馆的存檔,存档日期2013-12-02) (中文(简体) ).

请注意,提供这些定义是为了帮助在 TypeScript 中工作的开发者生成有效的上下文对象,但不应该被视为上下文定义的"真理之源"(而不是看图和文档). 也可以用快取型支持的其他语言为我们生成源文件.

并非总能通过 TypeScript 完美地复制 JSONSchema 中定义的类型/界面. 因此,在定义之间出现任何分歧时,JSONSchema应假定是正确的,而不是打字法。 例如,JSONSchema可能会在对象上定义可选字段+对附加属性类型的限制(通过 "additionalProperties": { "type": "string"})),将产生索引签名 [property: string]: string; 在生成的 TypeScript 中。 该签名与可选属性(包括字符串属性)不相容,因为其类型 string | undefinedJSON Schema中可能会出现类似的问题,如果使用这个方案通过组分生成一个子类型: additionalProperties 并不知道Teh subschema的定义。 两个问题都可以通过使用 unevaluatedProperties 在 schema 中,它会顺从到 subschema 中可选属性的已声明类型,但目前也被快速类型所忽略 - 导致类型会编译,但不限制 schema 中定义的可选属性值类型.

此外,快取型并不总是完美地复制所指定的多态场 oneOf 在 JSONSchema 中,因为它通常会将不同的对象合并成一个单一类型(其中不包含在其中一个组成方案中的字段成为可选的),而不是创建一个联盟类型. 在这种情况下,生产的类型可以使用(有所有必要字段),但可能允许建造缺失必要属性或包括多个组合方案产生的属性的无效实例,根据JSONSchema,这些属性是不可能/有效的.

因此,这里提供的类型可用于提供有效的上下文对象并读取/写入他们的JSON编码,但可能无法检测或防止JSONSchema识别的有限一组无效对象.

也请注意,快取型将生成代表schema子单元的类型或接口,然后在主界面定义中引用. 它们往往没有独特的名称(例如: id 对象在上下文中,为fdc3.instrument等特定上下文类型所定义。 Quicktype会为这样的界面生成一个随机名称,用于引用,由于它是被随机生成的,它可能会显得奇怪地命名(例如. PurpleId, (中文(简体) ), FluffyMarket, (中文(简体) ), TentacledIdentifier 页:1 请忽略这些名称,因为这些类型/界面通常不会在主类型组成之外使用,例如:

export interface Instrument {
  id: StickyId;
  market?: FluffyMarket;
  type: string;
  name?: string;
  [property: string]: any;
}

export interface StickyId {
  BBG?: string;
  CUSIP?: string;
  FDS_ID?: string;
  FIGI?: string;
  ISIN?: string;
  PERMID?: string;
  RIC?: string;
  SEDOL?: string;
  ticker?: string;
  [property: string]: any;
}

export interface FluffyMarket {
  BBG?: string;
  COUNTRY_ISOALPHA2?: string;
  MIC?: string;
  name?: string;
  [property: string]: any;
}

并且不应被视为该类型结构的计划部分(不应被任何衍生作品所复制). 在应用时,不使用这些子单元的命名,而是用其内容来取而代之. 希望今后我们将为这些分单位创造更好的名称.

最后,请注意最新版本的速效型(在编写本报告之时) 23.0.19) 有一些错误必须围绕:

  • 使用目录或.schema.json文件作为源会引发输入类型参数 -s schema 被忽略,导致文件被解释为JSON而不是JSON Schema.
    • 该存储库提供了一种工具(././快速型Util.js) 围绕此错误工作, 方法是列出目录并构建快速类型的呼叫, 每个文件都作为单个源提供 .
  • 设置 --nice-property-names TypeScript 输出选项将崩溃生成器,无法使用.

详情:

版本与发布记录

@finos/fdc3-context 共发布 20 个版本,首次发布于 2025/01/15;过去 12 个月发布了 9 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.0.0latest2026/10/2619 天前
3.0.0-beta.1prerelease2026/10/081 个月前
3.0.0-alpha.52026/09/231 个月前
3.0.0-alpha.42026/09/221 个月前
3.0.0-alpha.22026/06/224 个月前
2.2.32026/05/146 个月前

关于 @finos/fdc3-context 的常见问题

@finos/fdc3-context 是什么?

此文件夹包含 Typescription 接口, 由上下文 JSONSchema 生成的 ContextTypes.ts ()https://json-schema.org/ (中文(简体) )通过快取类型的文件( )https://quicktype.io/ 互联网档案馆的存檔,存档日期2013-12-02) (中文(简体) ).

如何安装 @finos/fdc3-context?

在项目目录运行 npm install @finos/fdc3-context,或使用 pnpm add / yarn add / bun add。

@finos/fdc3-context 支持 TypeScript 吗?

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

@finos/fdc3-context 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@finos/fdc3-context 需要什么版本的 Node.js?

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

@finos/fdc3-context 可以商用吗?

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

@finos/fdc3-context 的下载量有多少?

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

@finos/fdc3-context 还在维护吗?

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