web-dev-qa-db-ja.com

タイプスクリプト:タイプURLとは何ですか?

文字列型のインターフェイスメンバが正式に有効なURLであることを確認したいです。メンバーをURLとして宣言できますが、有効なURLである文字列を割り当てることはできません。

interface test {
    myurl: URL;
}

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

コンパイルするとき、私は得る:

タイプ 'string'は、タイプ 'URL'に割り当てることができません。

タスクにデコレータを使用する必要がありますか( https://www.typescriptlang.org/docs/handbook/decorators.html )?

そして、URLは何に適していますか?

TypeScript 1.8.10を使用しています

17
user130685

AFAICT、URLは WhatWG Url仕様 に基づくTypeScriptの「組み込み」機能です。リンク先ページには、根拠と例の両方があります。

つまり、URLが有効であることを確認しながら、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仕様 には、さらに多くのコンストラクター、サンプル、および説明があります。

19
Spiralis