constructor() {
    /**
     * @const {string}
     */
    this.href;

    /**
     * @const {string}
     */
    this.protocol;

    /**
     * @const {string}
     */
    this.username;

    /**
     * @const {string}
     */
    this.password;

    /**
     * @const {string}
     */
    this.host;

    /**
     * @const {string}
     */
    this.hostname;

    /**
     * @const {string}
     */
    this.port;

    /**
     * @const {string}
     */
    this.origin;

    /**
     * @const {string}
     */
    this.pathname;

    /**
     * @const {string}
     */
    this.search;

    /**
     * @const {string}
     */
    this.hash;
  }
UrlLike mirrors most of the public readonly interface of the URL object in
the URL Web API.
Notable exclusions:
 - toJson()
 - searchParams

Instead of using the searchParams property, use `getSearchParams` from this
package. This allows for the relevant code to be removed when inspection of
search parameters is not needed.
@record