今天在VSCode里用TypeScript写代码时发现一个很有趣的事情
interface URIError
{
status: number; //url异常请求错误状态码
requestMethod: string; //url异常请求错误Method
requestURL: string; //url异常请求错误Url
}
const bugReport = (param: URIError) => {}
bugReport({
status: 500,
requestMethod: "POST",
requestURL: "https://xxxx",
})
复制代码
如上图,当我在调用bugReport传入URIError的对象时,vscode提示了如下错误
意思就是对象{ status: 500, requestMethod: "POST", requestURL: "https://xxxx", }
不能赋值给URIError类型,因为缺乏name,message属性,但是URIError里并没有定义name,message属性,这是怎么回事?
于是我点击bugReport的URIError参数查看引用,发现系统里面也有一个URIError接口,
系统的URIError继承Error,而Error里面刚好定义了name,message属性
当自己的代码也定义一个同名属性的时候,系统自动将这两个接口内容合并了。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END