SyntaxError: getter functions must have no arguments
The JavaScript exception "getter functions must have no arguments" occurs when agetter is declared and the parameter list is non-empty.
Message
SyntaxError: Getter must not have any formal parameters. (V8-based)SyntaxError: getter functions must have no arguments (Firefox)SyntaxError: Unexpected identifier 'x'. getter functions must have no parameters. (Safari)
Error type
What went wrong?
Theget
property syntax looks like a function, but it is stricter and not all function syntax is allowed. A getter is always invoked with no arguments, so defining it with any parameter is likely an error.
Note that this error only applies to property getters using theget
syntax. If you define the getter usingObject.defineProperty()
, etc., the getter is defined as a normal function, although it's likely still an error if the getter expects any arguments, as it will be called without any.
Examples
Invalid cases
js
const obj = { get value(type) { return type === "string" ? String(Math.random()) : Math.random(); },};
Valid cases
js
// Remove the parameterconst obj = { get value() { return Math.random(); },};// Use a normal method, if you need a parameterconst obj = { getValue(type) { return type === "string" ? String(Math.random()) : Math.random(); },};