Start learning free

LESSON 608 OF 639 · OBJECT-ORIENTED PROGRAMMING

Shape Area in TypeScript

Practice

You write an abstract class and the areas of three shapes.

Shape is abstract. It has two abstract methods:

  • area() returns the shape's area.
  • name() returns the shape's name.

It also has one concrete method, describe(). It returns a text such as Square with area 25. That is the name, then with area, then the area.

Three shapes inherit from Shape:

  • Rectangle(width, height) has area width × height.
  • Square(side) has area side × side.
  • RightTriangle(a, b) has sides a and b that meet at a right angle. Its area is a × b / 2, rounded down.

Their constructors and name() methods are already written. You write each area().

In TypeScript, Shape is an abstract class. Its abstract methods have no body.

For each shape, the harness prints describe() on its own line.

 

Example 1:

Input: new Rectangle(3, 4), new Square(5), new RightTriangle(3, 4)
Output:
Rectangle with area 12
Square with area 25
Right triangle with area 6

Explanation: 3 × 4 = 12 and 5 × 5 = 25.
The triangle is half of 3 × 4, so 6.

Example 2:

Input: new RightTriangle(3, 5), new Square(1)
Output:
Right triangle with area 7
Square with area 1

Explanation: Half of 3 × 5 is 7.5.
It rounds down to 7.

Example 3:

Input: new Rectangle(1, 7), new RightTriangle(1, 1)
Output:
Rectangle with area 7
Right triangle with area 0

Explanation: A 1 by 7 rectangle has area 7.
Half of 1 × 1 rounds down to 0.

 

Constraints:

  • 1 to 100 shapes.
  • Each size is a whole number from 1 to 10,000.
STEP 1 OF 6
    Ctrl + Enter to check

    Shape Area in TypeScript

    Keep going with TypeScript500+ step-by-step lessons, from your first line of code to coding interviews. Free to start.
    Start learning free