Reputation: 73
I am bit confused with this warning:
Argument type number is not assignable to parameter type string | undefined Type number is not assignable to type string
Take the following peace of code:
function createCalculator() {
let calculator = {
sum() {
return this.a + this.b;
},
mul() {
return this.a * this.b;
},
read() {
this.a = +prompt('a?', 0);
this.b = +prompt('b?', 0);
}
};
calculator.read([1,3,6]);
console.log( calculator.sum() );
console.log( calculator.mul() );
}
let calculator;
calculator = createCalculator();
Also I have one warning:
Void function return value is used
I want the follow:
The function createCalculator()
returns an object with three methods:
read(arr)
accepts a table of numbers and saves it in its field
object.sum()
returns the sum of the table valuesmul()
returns the product of the table valuesUpvotes: 0
Views: 1369
Reputation: 9421
I have inserted a return function which should make your warning disappear.
function createCalculator() {
let calculator = {
sum() {
return this.a + this.b;
},
mul() {
return this.a * this.b;
},
read() {
this.a = +prompt('a?', 0);
this.b = +prompt('b?', 0);
}
};
calculator.read(); // Don't bother to send in the [1,3,6] because you are not using it in the function.
console.log(calculator.sum());
console.log(calculator.mul());
return calculator // Do this so that your final statement really has something to receive!
}
let calculator;
calculator = createCalculator();
function createCalculator() {
return {
sum() {
return this.a + this.b;
},
mul() {
return this.a * this.b;
},
read() {
this.a = +prompt('a?', 0);
this.b = +prompt('b?', 0);
}
};
}
const calculator = createCalculator();
calculator.read();
console.log(calculator.sum());
console.log(calculator.mul());
So how about this:
function createCalculator() {
return {
memory: [],
read(arr) {
this.memory = arr
},
sum() {
return this.memory.reduce((x, y) => x + y, 0)
},
mul() {
return this.memory.reduce((x, y) => x * y, 1)
},
};
}
const calculator = createCalculator();
calculator.read([1, 3, 6]);
console.log(calculator.sum());
console.log(calculator.mul());
Upvotes: 1