constructor(options) {
        if (typeof options === 'string' || options instanceof QueryFile) {
            options = {
                text: options
            };
        } else {
            options = assert(options, ['text', 'values', 'binary', 'rowMode', 'types']);
        }
        super(options);
    }
@class ParameterizedQuery
@description
Constructs a new {@link ParameterizedQuery} object. All properties can also be set after the object's construction.

This type extends the basic `{text, values}` object, i.e. when the basic object is used with a query method,
a new {@link ParameterizedQuery} object is created in its place.

The type can be used in place of the `query` parameter, with any query method directly.

The type is available from the library's root: `pgp.ParameterizedQuery`.

@param {string|QueryFile|Object} [options]
Object configuration options / properties.

@param {string|QueryFile} [options.text] - See property {@link ParameterizedQuery#text text}.
@param {array} [options.values] - See property {@link ParameterizedQuery#values values}.
@param {boolean} [options.binary] - See property {@link ParameterizedQuery#binary binary}.
@param {string} [options.rowMode] - See property {@link ParameterizedQuery#rowMode rowMode}.
@param {ITypes} [options.types] - See property {@link ParameterizedQuery#types types}.

@returns {ParameterizedQuery}

@see
{@link errors.ParameterizedQueryError ParameterizedQueryError}

@example

const {ParameterizedQuery: PQ} = require('pg-promise');

// Creating a complete Parameterized Query with parameters:
const findUser = new PQ({text: 'SELECT * FROM Users WHERE id = $1', values: [123]});

db.one(findUser)
    .then(user => {
        // user found;
    })
    .catch(error => {
        // error;
    });

@example

const {ParameterizedQuery: PQ} = require('pg-promise');

// Creating a reusable Parameterized Query without values:
const addUser = new PQ('INSERT INTO Users(name, age) VALUES($1, $2)');

// setting values explicitly:
addUser.values = ['John', 30];

db.none(addUser)
    .then(() => {
        // user added;
    })
    .catch(error=> {
        // error;
    });

// setting values implicitly, by passing them into the query method:
db.none(addUser, ['Mike', 25])
    .then(() => {
        // user added;
    })
    .catch(error=> {
        // error;
    });