ts定义对象类型Record<string, any>;和object、Object的区别

这篇具有很好参考价值的文章主要介绍了ts定义对象类型Record<string, any>;和object、Object的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Record 是 TS 内置的一个高级类型,是通过映射类型的语法来生成索引类型的

type Record<K extends string | number | symbol, T> = { 
    [P in K]: T;
}

比如传入 'a' | 'b' 作为 key,1 作为 value,就可以生成这样索引类型:

type res = {
  a: 1,
  b: 1
}
type res = Record<'a' | 'b', 1>

所以这里的 Record<string, any> 也就是 key 为 string 类型,value 为任意类型的索引类型,可以代替 object 来用,更加语义化一点:

type res = {
  [x: string]: any
}
type res = Record<string, any>

Record 与 object区别

TypeScript允许访问类型Record<any, any>对象得任何属性,即使特定键未知

let a: Record<any, any>;
a.foo; // works

object对象上,键不会被假定为any,TypeScript不知道哪些密钥实际存在,但它不允许访问任何密钥

let b: object;
a.foo; //  error: Property "foo" does not exist on type "object" 错误:类型“object”上不存在属性“foo”

object与Object 使用区别

object定义是一个对象类型,不能自动获取对象上的属性和方法
ts定义对象,typescript,javascript,前端

object类型只能定义对象类型,不能定义其他类型

 ts定义对象,typescript,javascript,前端

Object 也是不可以自动获取定义的对象上的属性和方法,

ts定义对象,typescript,javascript,前端

 但是可以获取对象自身上的属性和方法

ts定义对象,typescript,javascript,前端

Object类型可以定义任何类型

var a: Object = []

Object只能赋给任意值,不能调用方法

ts定义对象,typescript,javascript,前端ts定义对象,typescript,javascript,前端

参考:

真实案例说明 TypeScript 类型体操的意义 - 知乎

TS学习 unknown、any、 object、Object 的区别使用_ts object_你还差的远呢。的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-569490.html

到了这里,关于ts定义对象类型Record<string, any>;和object、Object的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • List<Map<String, Object>> 转List<T> list map对象转list对象

    我们在处理数据的时候,经常用到map对象转java对象。 要转换的对象 pom文件JSON包 : 如果此篇文章有帮助到您, 希望打大佬们能 关注 、 点赞 、 收藏 、 评论 支持一波,非常感谢大家! 如果有不对的地方请指正!!! 参考1 参考2

    2024年02月13日
    浏览(30)
  • Elasticsearch中object类型与nested类型以及数组之间的区别

    0、一般情况下用object 类型来查es中为json对象的字段数据,用nested来查es中为JsonArray数组类型的字段数据。 1、默认情况下ES会把JSON对象直接映射为object类型,只有手动设置才会映射为nested类型 2、object类型可以直接使用普通的逗号(.)查询,比如 3、nested类型的查询需要使用

    2024年01月22日
    浏览(56)
  • js通过Object.defineProperty() 定义和控制对象属性

    用于给一个对象定义一个新属性或是修改某个现有属性,并返回此对象。 Object.defineProperty(obj,prop,descriptor)  它接收 3 个参数,第 1 个是要定义属性的对象;第 2 个是要定义或修改的属性的属性名或 Symbol;第 3 个是对该属性的描述,称之为属性描述符,为一个对象,可以拥有

    2024年03月09日
    浏览(44)
  • js判断类型:typeof Object.prototype.toString instanceof constructor有什么区别?一文讲清楚

    相信很多小伙伴在使用js的过程中,经常会需要对js的数据类型进行判断,而js中可以对数据类型进行判断的方法有很多种,最常见的有typeof、Object.prototype.toString、instanceof、constructor这四种,那么他们有什么区别呢? 目录 js数据类型 typeof 为啥typeof会将null判断为object Object.pr

    2024年02月11日
    浏览(24)
  • TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }

    前言:         最近用 typeScript ,也就是大家常说的 【 TS 】写点东西,但是老是提醒这个未定义,那个可能为空,主要是 tsconfig.json 中的严格模式我没关,所以今天总结一下,严格模式中【TS】中遇到 对象可能为“未定义” 的具体场景,以及共有几种解决方法!   我们看

    2023年04月22日
    浏览(28)
  • JSON转换List<Map<String, Object>>、Map<String, Object>

    废话就不说了 早上10点研究到现在 获取redis的JSON字符串 String getPalletListNew = redisService.getRedis(“getPalletListNew”, abroad + “” + goodsLevel + “” + startPort + “” + destinationPort + “” + maxTon + “” + minTon); 转换MapString,Object public MapString, Object jsonToMap(String json){ MapString, Object map = new

    2024年02月20日
    浏览(36)
  • TypeScript报错:ts(2683)“this“ 隐式具有类型 “any“,因为它没有类型注释。ts(7009)其目标缺少构造签名的 “new“ 表达式隐式具有 “any“ 类型。

    TypeScript报错:ts(2683)“this” 隐式具有类型 “any”,因为它没有类型注释。 例: 可以改为 TypeScript报错:ts(7009)其目标缺少构造签名的 “new” 表达式隐式具有 “any” 类型。 例: 可以改为:

    2024年02月16日
    浏览(55)
  • 类型“AxiosResponse<any, any>”上不存在属性“errorinfo”。ts(2339)真实有效。

    先看问题 类型“AxiosResponseany, any”上不存在属性“errorinfo”。ts(2339) 接口是返回有这个字段的,但是依然飘红,尝试了好多方法不行。 解决方法: 请求封装文件里面加 嘿嘿,解决了, 注意: 保存后可能不会立即生效,需要把当前文件关闭,再打开,就OK了。

    2024年02月16日
    浏览(26)
  • List<Map<String, Object>>

    ListMapString, Object 是一个Java数据结构,它是一个列表(List),其中每个元素都是一个Map。在每个Map中,键(key)是字符串(String),值(value)可以是任何对象(Object)。 这种数据结构通常用于存储和处理一组相关的数据记录。例如,可以使用ListMapString, Object 存储数据库查询结果,其

    2023年04月21日
    浏览(29)
  • ts报错“this“ 隐式具有类型 “any“,因为它没有类型注释。解决方案

    序         1、参考博文===》①严格模式 - 知乎,②ts的tsconfig.son中文说明③TypeScript Number | 菜鸟教程          2、解决( ts报错“this“ 隐式具有类型 “any“,因为它没有类型注释。 )           3、解决( 函数内this是undefined 的问题 )          4、解决( 其目标缺少构造

    2024年02月08日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包