From b4b0203ce22ce02a1209ae472b9f91609cecb088 Mon Sep 17 00:00:00 2001 From: thomas Date: Fri, 20 Jan 2023 10:30:37 +0100 Subject: [PATCH] feat(overload): add readme instruction --- apps/overload/README.md | 13 ++++++++----- apps/overload/src/app/app.component.ts | 3 ++- .../src/app/{teacher.utils.ts => vehicle.utils.ts} | 0 3 files changed, 10 insertions(+), 6 deletions(-) rename apps/overload/src/app/{teacher.utils.ts => vehicle.utils.ts} (100%) diff --git a/apps/overload/README.md b/apps/overload/README.md index 9696340..cf38567 100644 --- a/apps/overload/README.md +++ b/apps/overload/README.md @@ -4,13 +4,16 @@ ### Information +Angular is using Typescript and mastering Typescript can help you avoid runtime errors at compile time. In this challenge, we have a function to create a vehicle. +But each vehicle type needs different type of property. Right now we are throwing an error at runtime which is less than ideal since we can catch this error at compile time. + +One easy way would be to create a function per vehicle type but for this challenge I want to use the same fonction and depending on the type passed as first parameter , Typescript should autocomplete for you. +To archieve this, we will use function overload. + ### Statement -### Step 1 - -### Step 2 - -### Constraints: +- Use function overload +- Delete all `throw new Error` ### Submitting your work diff --git a/apps/overload/src/app/app.component.ts b/apps/overload/src/app/app.component.ts index e4821fb..3ea2a71 100644 --- a/apps/overload/src/app/app.component.ts +++ b/apps/overload/src/app/app.component.ts @@ -1,5 +1,5 @@ import { Component } from '@angular/core'; -import { createVehicle } from './teacher.utils'; +import { createVehicle } from './vehicle.utils'; @Component({ standalone: true, @@ -8,6 +8,7 @@ import { createVehicle } from './teacher.utils'; }) export class AppComponent { car = createVehicle('car', 'diesel'); + moto = createVehicle('moto', 'diesel'); bus = createVehicle('bus', undefined, 20); boat = createVehicle('boat', undefined, 300, true); bicycle = createVehicle('bicycle'); diff --git a/apps/overload/src/app/teacher.utils.ts b/apps/overload/src/app/vehicle.utils.ts similarity index 100% rename from apps/overload/src/app/teacher.utils.ts rename to apps/overload/src/app/vehicle.utils.ts