Meal Maker hard coding? or Bug?

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;

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?