当前位置: 首页 > news >正文

wordpress 用oss存储手机优化管家

wordpress 用oss存储,手机优化管家,贵阳百度seo点击软件,微软雅黑 wordpress在 TypeScript 中#xff0c;避免使用 Function 作为类型。Function 代表的是“任意类型的函数”#xff0c;这会带来类型安全问题。对于绝大多数情况#xff0c;你可能更希望明确地指定函数的参数和返回值类型。 如果你确实想表达一个可以接收任意数量参数并返回任意类型的… 在 TypeScript 中避免使用 Function 作为类型。Function 代表的是“任意类型的函数”这会带来类型安全问题。对于绝大多数情况你可能更希望明确地指定函数的参数和返回值类型。 如果你确实想表达一个可以接收任意数量参数并返回任意类型的函数可以使用 (...args: any[]) any 这种形式。它明确表示函数的参数是一个任意长度的数组并且返回值的类型也是任意的这样既保留了灵活性也提供了足够的类型信息。 使用函数类型的案例 想象一下你正在编写一个函数用于对数组中的元素求和。这在 Excalidraw 代码库中有一个很好的例子 const sum  T(  array: readonly T[],  mapper: (item: T)  number): number   array.reduce(    (acc, item)  acc  mapper(item),    0  ); 这个 sum 函数的定义很简单它接收两个参数 array: 一个只读的泛型数组 readonly T[]。 mapper: 一个将数组项映射为数字的函数 (item: T) number。 该函数最终返回一个 number也就是数组中所有项通过 mapper 函数处理后的和。 mapper 函数的作用 mapper 函数是这个模式中的关键部分。让我们单独看看 mapper 的定义 type MapperT  (item: T)  number; mapper 的类型声明表示它接收一个类型为 T 的参数并返回一个数字。 假设你有一个 YouTube 视频对象的数组你想统计所有视频的观看次数。这是一个可能的使用案例 interface YouTubeVideo {  name: string;  views: number;}const youTubeVideos: YouTubeVideo[]  [  { name: My favorite cheese, views: 100 },  { name: My second favorite cheese (you wont believe it), views: 67 }];const mapper: MapperYouTubeVideo  (video)  video.views;const result  sum(youTubeVideos, mapper); // 167 在这个例子中mapper 函数从每个 YouTubeVideo 对象中提取 views 属性并将它们相加最终得到了 167 这个总数。 类型推断的优势 TypeScript 的类型推断能力非常强大。在上面的例子中即便你省略了显式的类型声明TypeScript 依然可以根据上下文推断出正确的类型 const youTubeVideos  [  { name: My favorite cheese, views: 100 },  { name: My second favorite cheese (you wont believe it), views: 67 }];const result  sum(youTubeVideos, (video)  video.views); // 167 虽然没有显式声明 youTubeVideos 的类型但 TypeScript 仍然能够推断出 video 的类型是 { name: string; views: number }。这是因为我们在 sum 函数的定义中明确了 mapper 的函数签名 (item: T) number因此 TypeScript 可以自动推导出类型。 避免使用 Function 类型 在开发中很多初学者会犯一个常见的错误将函数类型声明为 Function。比如说以下这种写法就存在问题 const sum  T(  array: readonly T[],  mapper: Function): number   array.reduce(    (acc, item)  acc  mapper(item),    0  ); 使用 Function 作为类型实际上是在告诉 TypeScriptmapper 可以是任何函数这样的声明没有提供足够的类型约束导致类型检查变得不那么严格。一个潜在的问题是开发者可能会无意中传入不返回数字的函数 const result  sum(youTubeVideos, (item)  {  return item.name;}); 在这个例子中mapper 返回的是 name字符串而非 views数字但由于 Function 类型没有约束返回值类型TypeScript 无法捕捉到这个错误。 更好的函数类型表达 如果你想要表达“任何函数”可以使用更具体的函数签名而非 Function。例如如果你想表示接收任意参数且返回任意值的函数可以使用 (...args: any[]) any 这样的形式。这个签名意味着函数可以接收任意数量的参数并且可以返回任意类型的值。 TypeScript 还提供了一些内置的实用类型如 Parameters 和 ReturnType可以帮助你推断函数的参数和返回值类型 export type Parameters  T extends (...args: any)  any  T extends (...args: infer P)  any  ? P  : never;export type ReturnType  T extends (...args: any)  any  T extends (...args: any)  infer R ? R : any; ParametersT 可以获取函数 T 的参数类型而 ReturnTypeT 则可以获取其返回值类型。这些实用类型都使用了 (...args: any) any 作为约束表示可以接收任意参数并返回任意类型的函数。 总结 在 TypeScript 中尽量避免使用 Function 作为类型。它过于宽泛会导致类型检查失效。通过使用 (a: string) any 或 (...args: any[]) any 这样的具体类型签名你可以在获得类型安全的同时保留代码的灵活性。 这不仅能帮助你捕捉潜在的类型错误还能让你的代码在团队协作和项目维护中更加健壮。 本文由 mdnice 多平台发布
http://www.tj-hxxt.cn/news/132896.html

相关文章:

  • 海南在线人才网招聘seo是什么意思啊电商
  • 想找做海报的超清图片去哪个网站找网站icp备案流程
  • 网站制作带模板破解版厦门市建设安全管理协会网站
  • 网站开发 支付宝订单号广州白云区最新新闻
  • html购物网站代码centos6.9安装wordpress
  • 摄影网站设计纪检网站建设动态主题
  • 网站建设的有什么需求泉州建设网站公司吗
  • 外包公司到底值不值得去网站程序 seo
  • 枣庄建设网站品牌名的选取方法
  • 做网站用的编程工具网站建设灬金手指下拉
  • 淘宝客网站备案信息网站设计网络推广商贸平台
  • 微信网站建设公司高端网站建设服务商
  • 江苏省住房城乡建设厅网站电商网站开发主要技术问题
  • 做多语言版本网站如何增强网站的安全性
  • 怎么阻止网站oppo软件商店更新
  • 电商网站开发平台pi netwowordpress上的博客
  • o2o网站建设教程海南什么公司的网站
  • 制作网站需要的技术与软件大学生网站开发
  • 微信小程序可以做电影网站吗苏州集团网站制作公司
  • 湖北网站seo策划礼品公司网站源码
  • 商务网站建设课程福州做网站外包
  • 附近那里有做网站的国外男女直接做的视频网站
  • 河南网站优化外包服务千锋教育培训多少钱费用
  • 整站seo技术搜索引擎优化网站开发摘要
  • 顺德门户网站建设公司wifi网络服务商电话
  • 找人做效果图那个网站seo查询价格
  • 移动端网站 优帮云app软件免费模板下载网站
  • wordpress页面怎么添加样式表长春最专业的seo公司
  • 上海 建站侨联网站建设方案
  • 做网站首页的要素廊坊做网站公司