diff --git a/types/treescape/.npmignore b/types/treescape/.npmignore new file mode 100644 index 000000000000000..93e307400a5456b --- /dev/null +++ b/types/treescape/.npmignore @@ -0,0 +1,5 @@ +* +!**/*.d.ts +!**/*.d.cts +!**/*.d.mts +!**/*.d.*.ts diff --git a/types/treescape/index.d.ts b/types/treescape/index.d.ts new file mode 100644 index 000000000000000..0c2dbd52fb3a2f1 --- /dev/null +++ b/types/treescape/index.d.ts @@ -0,0 +1,18 @@ +export class TreeNode { + val: number; + left: TreeNode | null; + right: TreeNode | null; + constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null); +} +/** + * Creates a binary tree from a level-order array (use `null` for empty nodes). + * @param arr Level-order array representing the tree. + * @returns The root TreeNode or null if the array is empty. + */ +export function convertToTree(arr: (number | null)[]): TreeNode | null; + +/** + * Prints the tree in ASCII format to the console. + * @param treeNode The root TreeNode to print. + */ +export function printTree(treeNode: TreeNode | null): void; diff --git a/types/treescape/package.json b/types/treescape/package.json new file mode 100644 index 000000000000000..2e07c32654e79f8 --- /dev/null +++ b/types/treescape/package.json @@ -0,0 +1,17 @@ +{ + "private": true, + "name": "@types/treescape", + "version": "1.0.9999", + "projects": [ + "https://www.npmjs.com/package/treescape" + ], + "devDependencies": { + "@types/treescape": "workspace:." + }, + "owners": [ + { + "name": "Shan0102", + "githubUsername": "Shan0102" + } + ] +} diff --git a/types/treescape/treescape-tests.ts b/types/treescape/treescape-tests.ts new file mode 100644 index 000000000000000..50c362ce86318c6 --- /dev/null +++ b/types/treescape/treescape-tests.ts @@ -0,0 +1,4 @@ +import { convertToTree, printTree } from "treescape"; + +const tree = convertToTree([1, 2, 3, null, 4, 5, 6]); +printTree(tree); diff --git a/types/treescape/tsconfig.json b/types/treescape/tsconfig.json new file mode 100644 index 000000000000000..73badb2c9f157f2 --- /dev/null +++ b/types/treescape/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "module": "node16", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": ["index.d.ts", "treescape-tests.ts"] +}