palantir/blueprint

dataNode on TreeNode should not be optional

Open

#5779 aperta il 30 nov 2022

Vedi su GitHub
 (0 commenti) (0 reazioni) (0 assegnatari)TypeScript (2167 fork)batch import
Domain: APIP2Package: coreStatus: to triageType: breaking changeType: enhancementhelp wanted

Metriche repository

Star
 (20.263 star)
Metriche merge PR
 (Merge medio 43g 10h) (27 PR mergiate in 30 g)

Descrizione

Environment

  • Package version(s):
  • Browser and OS versions:

Feature request

This line: https://github.com/palantir/blueprint/blob/develop/packages/core/src/components/tree/treeNode.tsx#L83

    /**
     * An optional custom user object to associate with the node.
     * This property can then be used in the `onClick`, `onContextMenu` and `onDoubleClick`
     * event handlers for doing custom logic per node.
     */
    nodeData?: T;

should not be optional. It prevents type checking. If a user wants that to be optional then they can pass in undefined as a union for the generic parameter

Examples

can't do:

const a: ITreeNode<{type: "a"}> = {} as ITreeNode<{type: "a"}>;

if (a.dataNode.type == "a") // can't do this as a.dataNode can be undefined

if user actually wants undefined they can do ITreeNode<{type: "a"} | undefined>

Guida contributor