Skip to main content

Type Inheritance

Type Inheritance lets one type extend another, so the child type automatically includes all attributes defined on the parent. This enables reuse, consistency, and cleaner structure across your data model.

Behavior​

  • A child type automatically includes every attribute defined on its parent, and can still define its own additional attributes.
  • Inheritance chains across multiple levels — a type can have children, grandchildren, and so on.
  • Inheritance is single-parent only — a type can extend exactly one other type.
  • Attribute names must stay unique within the inheritance chain.
  • A child type cannot override an inherited attribute.
  • Changing an attribute on a parent type reflects across all its child types.
  • Once established, the inheritance relationship can't be removed, since child types depend on the parent's attributes.
Verified against code

Confirmed live in the backend as extendsTypeId on the type entity, backed by a dedicated TypeInheritanceService. The same entity also has a parentTypeId field, which is not related to this feature — it's a separate, purely visual mechanism for grouping types in the sidebar tree (validated by ParentValidator for tree-structure rules like "no cycles" and "same space," with no attribute logic involved). This matches Type's own note that the type hierarchy is "purely visual... your object data and underlying logic remain unaffected" — that's parentTypeId; extendsTypeId is the real attribute-inheritance mechanism this page describes.

See also: Type, and includeChildren on the Reference attribute type for referencing a parent type and its children together.