Sal*_*vic 5 javascript typescript
为什么 typescript 在 window.location 处抱怨:
const url = new URL("/somepath", window.location);
Run Code Online (Sandbox Code Playgroud)
“Location”类型的参数不可分配给“string |”类型的参数 网址'。“位置”类型缺少“URL”类型中的以下属性:密码、searchParams、用户名、toJSONts(2345
但这是完全有效的 JS 吗?
const url = new URL("/somepath", window.location);
Run Code Online (Sandbox Code Playgroud)
我发现 window.location 丢失了password, searchParams, username, toJSON,但似乎这些与使用 URL 无关?
问题:
这是 Typescript 的问题还是 URL 接受 window.location-object 是巧合
这是 TypeScript 的事情。在 JavaScript 中,window.location是一个对象。然而,当直接调用它时,它提供了href属性 - 最简单的思考方法是该.toString()方法返回该href属性。您应该href直接调用该属性:
const url = new URL("/somepath", window.location.href);
Run Code Online (Sandbox Code Playgroud)
您可以location通过强制其为 来直接使用any,或者通过unknownthenstring类型来使用,但这只是开始偏离 TypeScript 的本意:
// An any type
const url = new URL("/somepath", window.location as any);
// An unknown then string type
const url = new URL("/somepath", window.location as unknown as string);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1398 次 |
| 最近记录: |