Advertisement
Bohdan_Bilokin

Bug fixing due to ts requirements

Feb 24th, 2024
631
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. interface BigObject {
  2.   [key: string]:
  3.     | { cvalue: number | string | undefined | BigObject }
  4.     | undefined;
  5. }
  6.  
  7. function summ(a: BigObject) {
  8.   const x = Object.keys(a).map((k) => {
  9.     const elem = a[k];
  10.     if (typeof elem === "undefined") return 2021;
  11.     if (typeof elem.cvalue === "string") return +elem.cvalue || 2021;
  12.     if (typeof elem.cvalue === "object") return summ(elem.cvalue);
  13.     return elem.cvalue;
  14.   });
  15.  
  16.   let sum = 0;
  17.   for (let i = 0; i < x.length; i++) {
  18.     sum += x[i] as number;
  19.   }
  20.   return sum;
  21. }
  22.  
  23. const testObjA = {
  24.   hello: { cvalue: 1 },
  25.   world: { cvalue: { yay: { cvalue: "2" } } },
  26. };
  27.  
  28. const testObjB = { undefined };
  29.  
  30. const testObjC = {
  31.   hello: { cvalue: "1 cat" },
  32. };
  33.  
  34. console.log(summ(testObjA));
  35. console.log(summ(testObjB));
  36. console.log(summ(testObjC));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement