Meal Maker hard coding? or Bug?

https://www.codecademy.com/courses/introduction-to-javascript/projects/meal-maker

when i return the value for the _meal and _price properties, and i pass the incorrect value on the call, why does the setter method that checks for typeof does not work?

const menu = {
  _meal: '',
  _price: 0,

    set meal(mealToCheck) {
      if (typeof mealTocheck === `string`) {
        return this._meal = mealToCheck;
      }
  },

    set price(priceToCheck) {
       if (typeof this.priceToCheck === `number`)
        return this._price = priceToCheck;  
    },

    get todaysSpecial () {
        if (this._meal && this._price) {
          return `Today’s Special is ${this._meal} for $${this._price}!`
        } else {
          return 'Meal or price was not set correctly!'
        }
      }
};

menu._meal = 'Pizza';
menu._price = 8;
console.log(menu.todaysSpecial)

If i write

menu._meal = 8 
menu._price = 'lol'

why does the function call return this? I thought the else statement inside the todaysSpecial method would have been called?

Today’s Special is 8 for $lol!

You bypass the setter with this assignment. The setter for the price property is called price – not _price. You need to do the the assignment like this:

menu.price = 8;

But there are more errors also:

The typo aside: Do you see that you’re checking different things here?