diff --git a/packages/react/src/types/nodes.ts b/packages/react/src/types/nodes.ts index f4ad2820..4307742d 100644 --- a/packages/react/src/types/nodes.ts +++ b/packages/react/src/types/nodes.ts @@ -9,7 +9,7 @@ import { NodeTypes } from './general'; */ export type Node< NodeData extends Record = Record, - NodeType extends string = string + NodeType extends string | undefined = undefined > = NodeBase & { style?: CSSProperties; className?: string; diff --git a/packages/svelte/src/lib/types/nodes.ts b/packages/svelte/src/lib/types/nodes.ts index 0e741c00..021dad70 100644 --- a/packages/svelte/src/lib/types/nodes.ts +++ b/packages/svelte/src/lib/types/nodes.ts @@ -15,7 +15,7 @@ export type InternalNode = InternalNodeBase = Record, - NodeType extends string = string + NodeType extends string | undefined = undefined > = NodeBase & { class?: string; style?: string; diff --git a/packages/system/src/types/nodes.ts b/packages/system/src/types/nodes.ts index ae4bbc27..b1d93369 100644 --- a/packages/system/src/types/nodes.ts +++ b/packages/system/src/types/nodes.ts @@ -19,8 +19,6 @@ export type NodeBase< position: XYPosition; /** Arbitrary data passed to a node */ data: NodeData; - /** Type of node defined in nodeTypes */ - type: NodeType; /** Only relevant for default, source, target nodeType. controls source position * @example 'right', 'left', 'top', 'bottom' */ @@ -63,7 +61,15 @@ export type NodeBase< width?: number; height?: number; }; -}; +} & (undefined extends NodeType + ? { + /** Type of node defined in nodeTypes */ + type?: string | undefined; + } + : { + /** Type of node defined in nodeTypes */ + type: NodeType; + }); export type InternalNodeBase = NodeType & { measured: {