microsoft / TypeScript-Handbook

Deprecated, please use the TypeScript-Website repo instead
https://github.com/microsoft/TypeScript-Website
Apache License 2.0
4.88k stars 1.13k forks source link

Incorrect tree node definition in pages/Advanced Types.md #1339

Open juanigaray opened 3 years ago

juanigaray commented 3 years ago

This is minor but I'm reporting it to make my PR reference an issue.

The Tree type defines a node of a tree which must have two Tree chidren. This makes it impossible for there to be leaf nodes.

type Tree<T> = {
    value: T;
    left: Tree<T>;
    right: Tree<T>;
}

If a tree must have a child and that child can't be anything other than a tree, then that causes every child to need a child of its own. A leaf node doesn't have any children and you can't have an infinite tree, so this type wouldn't work in real code.