我想确保string类型的接口成员是一个正式有效的URL.我可以将成员声明为URL但我不能为其分配一个有效URL的字符串.
interface test {
myurl: URL;
}
var a : test;
a.myurl = "http://www.google.ch"
Run Code Online (Sandbox Code Playgroud)
编译时我得到:
类型"字符串"不能指定为"URL"类型.
我是否必须使用装饰器完成任务(https://www.typescriptlang.org/docs/handbook/decorators.html)?
什么是URL有用?
我正在使用打字稿1.8.10
Spi*_*lis 21
AFAICT,URL是打字稿"内置"功能,基于WhatWG Url规范.链接到页面既有基本原理,也有示例.
简而言之,它提供了一种结构化的方式来使用URL,同时确保它们是有效的.尝试创建无效网址时会抛出错误.
Typescript具有如下设置的相应类型定义(从typescript 2.1.5开始):in 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;
}
Run Code Online (Sandbox Code Playgroud)
对于您的用例,您应该能够像这样使用它:
a.myurl = new URL("http://www.google.ch");
可以在WhatWG Url规范中找到更多构造函数,示例和解释.
| 归档时间: |
|
| 查看次数: |
15853 次 |
| 最近记录: |