fork-commit-merge/fork-commit-merge

Fork, Commit, Merge - Medium Issue (TypeScript)

nikohoffren opened this issue · 0 comments

Fork, Commit, Merge - Medium Issue (TypeScript)

Note: You don't have ask permission to start solving the issue or get assigned, since these issues are supposed to be always open for new contributors. The actions-user bot will reset the file back to previous state for the next contributor after your commit is merged. So you can just simply start working with the issue right away!

The aim of this task is to create a simple calculator in TypeScript that can perform basic arithmetic operations (addition, subtraction, multiplication, and division).

Description

Create a TypeScript namespace named Calculator.

The Calculator namespace should have the following methods:

  • add(a: number, b: number): number: Returns the sum of a and b.
  • subtract(a: number, b: number): number: Returns the result of a minus b.
  • multiply(a: number, b: number): number: Returns the product of a and b.
  • divide(a: number, b: number): number: Returns the quotient of a divided by b. If b is 0, it should return null (or optionally throw an error).

Ensure to handle edge cases and provide proper type annotations.

Hints:

  • Make use of TypeScript's strong typing features to ensure the correct types are being passed and returned.
  • Handle division by zero carefully. You can either return null or throw a custom error.

Acceptance Criteria:

  • The calculator must be implemented in a type-safe manner using TypeScript.
  • Each method should work as expected for basic arithmetic operations.

How to get started

Open the tasks/typescript/medium directory from the root of your project.

Once you have created the calculator, you can test your solution with this command:

npx ts-node tasks/typescript/medium/calculator.ts

If your solution works, the tests should return these values:

8
2
15
1.666...
Warning message & null

If the values look correct, you are ready to make a Pull request!


Check out README.md for more instructions and how to make a pull request.

Feel free to ask any questions here if you have some problems!

Also, kindly give this project a star to enhance its visibility for new developers!