typescript中的object与Record

该文章由 leevare 发布于 ,归类于 Javascript

在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不允许使用未指定类型的属性。

如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!

相关文章:

说点什么

avatar
300
  Subscribe  
提醒