nerv_,
 
/**
 *
 * @param {(number|Point|number[])} paramOrX
 * @param {number} [y]
 * @constructor
 */
function Point(paramOrX, y) {
}
Хотя, как по мне, правильнее будет выбрать что-то одно -- я бы предпочел два параметра, x и y, тогда проблему с массивами решаем через new Point(...[x, y]), а для других Point'ов заведи статик метод типа Point.fromPoint(point) или метод clone в прототипе.