TypeScript

TypeScript things

table of contents


Breadth-first search

preOrderTraversal using generator

function* preOrderTraversal(node: Node): IterableIterator<Node> {
    yield node;
    if (node.children.length) {
        for (const child of node.children) {
            yield* preOrderTraversal(child);
        }
    }
}

export function find(tree: Node, key: string): Node | undefined {
    for (const node of preOrderTraversal(tree)) {
        if (node.id === key) return node;
    }

    return undefined;
}

Type Transformations

Camel Case Object Keys

NOTE: if u need this, something went wrong

type CamelCase<S extends string> = S extends `${infer P1}_${infer P2}${infer P3}`
    ? `${Lowercase<P1>}${Uppercase<P2>}${CamelCase<P3>}`
    : Lowercase<S>;

type SomeTypeCamelCased =
    { [key in keyof SomeType as CamelCase<key>]: SomeType[key] };
 Date: November 17, 2023
 Tags:  content typescript

Previous
⏪ React