diff --git a/lesson_06/expression/src/functions.ts b/lesson_06/expression/src/functions.ts index ab7433c9c..e193d2f9b 100644 --- a/lesson_06/expression/src/functions.ts +++ b/lesson_06/expression/src/functions.ts @@ -1,16 +1,17 @@ -export const FUNCTIONS: Record = Object.freeze({ - A: (a: number, b: number, c: number, d: number, e: number) => - ((a + b) * c) / Math.pow(d, e), - B: (a: number, b: number, c: number, d: number, e: number) => - Math.pow(a + b, c) / (d * e), - C: (a: number, b: number, c: number, d: number, e: number) => - a / b + c * Math.pow(d, e), - D: (a: number, b: number, c: number, d: number, e: number) => - (a * b) / Math.pow(c + d, e), - E: (a: number, b: number, c: number, d: number, e: number) => - Math.pow((a + b) / c, d) * e, - F: (a: number, b: number, c: number, d: number, e: number) => - (a * Math.pow(b + c, d)) / e, - G: (a: number, b: number, c: number, d: number, e: number) => - ((Math.pow(a, b) + c) * d) / e, -}); +export const FUNCTIONS: Record number> = + Object.freeze({ + A: (a: number, b: number, c: number, d: number, e: number) => + ((a + b) * c) / Math.pow(d, e), + B: (a: number, b: number, c: number, d: number, e: number) => + Math.pow(a + b, c) / (d * e), + C: (a: number, b: number, c: number, d: number, e: number) => + a / b + c * Math.pow(d, e), + D: (a: number, b: number, c: number, d: number, e: number) => + (a * b) / Math.pow(c + d, e), + E: (a: number, b: number, c: number, d: number, e: number) => + Math.pow((a + b) / c, d) * e, + F: (a: number, b: number, c: number, d: number, e: number) => + (a * Math.pow(b + c, d)) / e, + G: (a: number, b: number, c: number, d: number, e: number) => + ((Math.pow(a, b) + c) * d) / e, + }); diff --git a/lesson_06/expression/src/lesson6.test.ts b/lesson_06/expression/src/lesson6.test.ts index c324ca280..509eb98f5 100644 --- a/lesson_06/expression/src/lesson6.test.ts +++ b/lesson_06/expression/src/lesson6.test.ts @@ -17,7 +17,7 @@ describe("Lesson6Test", () => { const c = 3; const d = 4; const e = 5; - const expected = FUNCTIONS[process.env.HW_VERSION!].call( + const expected = FUNCTIONS[process.env.HW_VERSION || ""].call( null, ...[a, b, c, d, e], ); diff --git a/lesson_06/expression/src/lesson6.ts b/lesson_06/expression/src/lesson6.ts index bfe71e676..00af72421 100644 --- a/lesson_06/expression/src/lesson6.ts +++ b/lesson_06/expression/src/lesson6.ts @@ -13,7 +13,7 @@ const rl = createInterface({ }); const main = async () => { - const testFunction = FUNCTIONS[process.env.HW_VERSION!]; + const testFunction = FUNCTIONS[process.env.HW_VERSION || ""]; if (testFunction === undefined) { console.log("HW_VERSION version not set in config. Exiting..."); process.exit(1); diff --git a/lesson_06/expression/src/utils.ts b/lesson_06/expression/src/utils.ts index e6f53b6a0..520741a62 100644 --- a/lesson_06/expression/src/utils.ts +++ b/lesson_06/expression/src/utils.ts @@ -12,9 +12,9 @@ export const askQuestion = ( }); }; -export const getFunctionBody = (f: Function) => { - const fString = f.toString().split("=>").pop()!; - return beautify(fString); +export const getFunctionBody = (f: () => unknown) => { + const fString = f.toString().split("=>").pop(); + return beautify(fString || ""); }; export const printFormualaWithValues = ( @@ -34,7 +34,7 @@ export const printFormualaWithValues = ( ["e", String(e)], ["pow", "Math.pow"], ).reduce( - (acc: string, param: string[]) => acc.replace(param[0]!, param[1]!), + (acc: string, param: string[]) => acc.replace(param[0], param[1]), functionBody, ); console.log(`\nNow computing the value of ${formula}`);