Машинописный текст: что такое тип URL?

Я хочу убедиться, что элемент интерфейса строки типа является формально допустимым URL-адресом. Я мог бы объявить участника как URL-адрес, но я не могу назначить ему строку, которая является допустимым URL-адресом.

interface test {
    myurl: URL;
}

var a : test;
a.myurl = "http://www.google.ch"

При компиляции получаю:

Тип «строка» не может быть назначен типу «URL».

Должен ли я использовать декораторы для своей задачи (https://www.typescriptlang.org/docs/handbook/decorators.html)?

И для чего хорош URL?

Я использую машинописный текст 1.8.10.


person user130685    schedule 05.07.2016    source источник


Ответы (1)


AFAICT, URL — это «встроенная» функция машинописного текста, основанная на спецификациях URL WhatWG. На странице, на которую ссылаются, есть как обоснование, так и примеры.

Короче говоря, он предлагает структурированный способ использования URL-адресов, убедившись, что они действительны. Он будет выдавать ошибки при попытке создать недопустимые URL-адреса.

Typescript имеет соответствующие определения типов, установленные следующим образом (начиная с typescript 2.1.5): в node_modules/typescript/lib/lib.es6.d.ts:

interface URL {
    hash: string;
    host: string;
    hostname: string;
    href: string;
    readonly origin: string;
    password: string;
    pathname: string;
    port: string;
    protocol: string;
    search: string;
    username: string;
    toString(): string;
}

declare var URL: {
    prototype: URL;
    new(url: string, base?: string): URL;
    createObjectURL(object: any, options?: ObjectURLOptions): string;
    revokeObjectURL(url: string): void;
}

Для вашего варианта использования вы должны иметь возможность использовать его следующим образом:

a.myurl = new URL("http://www.google.ch");

Дополнительные конструкторы, примеры и пояснения можно найти в спецификациях WhatWG Url.

person Spiralis    schedule 16.01.2017