Posted at

TypeScriptで、相対URLからURLクラスのインスタンスを使う

たとえば、サーバーから相対URLを受け取ったとする。

そのとき、こんな感じで

class Sample {

url: URL;
constructor(url: string) {
this.url = new URL(url);
}
}

と書いても、エラーになる。


解決

自身のbaseURLを渡したうえで、URLクラスのインスタンスを作る。

class Sample {

url: URL;
constructor(url: string) {
this.url = new URL(url, document.baseURI);
}
}


参考

https://url.spec.whatwg.org/#api


バージョン

Typescript 3.1.1