typescript中的object与Record
在vue3.0中有如下一段代码
export const isObject = (val: any): val is Record<any, any> =>
val !== null && typeof val === 'object'
这里用到了Record<any, any>
,为什么这里不用object
呢?
举个例子
let a: Record<any, any>;
console.log(a.foo);
let b: object;
console.log(b.foo); // 报错:类型object上不存在foo属性
所以,在使用Record<any,any>
的时候,typescript允许访问对象上的任何属性,即使属性的类型未知。而当使用object
的时候,typescript不允许使用未指定类型的属性。
如果您觉得本文对您有用,欢迎捐赠或留言~
- 本博客所有文章除特别声明外,均可转载和分享,转载请注明出处!
- 本文地址:https://www.leevii.com/?p=2435