/** @type {function(number)} */
doesn't specify the "this" type so it is unknown. To specify it in that fashion you would want to use:
/** @type {function(this:F, number)}
Using "@param {number}" lets the compiler infer the "this" type from the fact it was declared on F's prototype.