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

记事本做网站怎么调整图片间距杭州房价

记事本做网站怎么调整图片间距,杭州房价,陕西省建设厅申报网站,网站免费推广网站历史小剧场 这个世界上#xff0c;有两种人最痛苦#xff0c;第一种是身居高位者#xff0c;第二种是身居底层者#xff0c;第一种人很少#xff0c;第二种人很多。第一种人叫崇祯#xff0c;第二种人叫百姓。 而最幸福的#xff0c;就是中间那拨人#xff0c;主要工作…历史小剧场 这个世界上有两种人最痛苦第一种是身居高位者第二种是身居底层者第一种人很少第二种人很多。第一种人叫崇祯第二种人叫百姓。 而最幸福的就是中间那拨人主要工作叫做欺上瞒下具体特点是除了好事什么都办除了脸什么都要。—《明朝那些事儿》 字符串模板与extends/infer extends: 有两个作用1、接口继承2、类型判断这篇文章主要是体现这个作用;infer: 推导泛型参数只在extends右边使用 案例 type str beyond;// 获开头 type getFirstT T extends ${infer First}${infer Rest}? First : never; type FirstLetter getFirststr; // type FirstLetter b// 获取除开头的部分 type getRestT T extends ${infer First}${infer Rest} ? Rest : never; type RestLetters getReststr; // type RestLetters eyond// 以y分隔 type SplitT T extends ${infer Front}y${infer Back} ? Back : never; type Splitted Splitstr; // type Splitted ond判断开头 type startsWidthstr extends string, prefix extends string str extends ${prefix}${infer Rest} ? true : false; type startsWidthKong startsWidthkong, ; // type startsWidthKong true type StartsWithBe startsWidthstr, be; //type StartsWithBe true type StartsWithC startsWidthstr, c; // type StartsWithC false转为首字母大写 type UppercaseFirstT extends string T extends ${infer First}${infer Rest} ? ${UppercaseFirst}${Rest} : never; type UppercaseStr UppercaseFirststr; // type UppercaseStr Beyond文本替换-替换第一个 type ReplaceOnestr extends string, from extends string, to extends string str extends ${infer Front}${from}${infer Rest} ? ${Front}${to}${Rest} : str; type ReplaceStr ReplaceOnestr, o, a; // type ReplaceStr beyand键值对转索引 a1 {a:1} type ConvertStrToRecordstr extends string str extends ${infer key}${infer value} ? { [k in key]: value } : never; type ConvertStrToRecordStr ConvertStrToRecorda1; // type ConvertStrToIndexStr {// a: 1; // }as 重映射-索引的重命名 索引转大写 interface IOut {aaa: 1,bbb: 2,fun: () void } type UpperKeysT extends Recordstring, any {[K in keyof T as (T[K] extends Function ? K : UppercaseK)]: T[K] } type res UpperKeysIOut; // type res { // AAA: 1; // BBB: 2; // fun: () void; // }合并索引 interface IOut2 {ccc: 3,ddd: 4 } type CombineIndexA extends Recordstring, any, B extends Recordstring, any {[K in keyof A | keyof B] : K extends keyof A ? A[K] : K extends keyof B ? B[K] : never } type combine CombineIndexIOut, IOut2; // type combine { // aaa: 1; // bbb: 2; // fun: () void; // ccc: 3; // ddd: 4; // }巧用递归 文本替换-替换所有 type ReplaceAllStr extends string, From extends string, To extends string Str extends ${infer Front}${From}${infer Rest} ? ${Front}${To}${ReplaceAllRest, From, To} : Str; type ReplaceAllStr ReplaceAll12333333456, 3, A; // type ReplaceAllStr 12AAAAAA456字符串反转 type ReverseStr extends string, Res extends string Str extends ${infer First}${infer Rest} ? ReverseRest, ${First}${Res} : Res; type ReverseStr Reversehello; // type ReverseStr olleh综合 字符串解析-初级 例如我们要将 a1b2c3 转为 {a:1, b:2, c:3} 那么我们要有按这三步走 分割取 键值对 处理处理单个的 键值对 转换为 索引类型把 转换后的 索引类型 合并 type ParseStr extends string, Res extends Recordstring, any {} Str extends ${infer One}${infer Rest} ?ParseRest, CombineIndexRes, ConvertStrToRecordOne :CombineIndexRes, ConvertStrToRecordStrtype parseToRecord Parsea1b2c3; // type parseToRecord {a: 1, b: 2, c: 3}字符串解析-升级 如果只有键没有值则返回 {key: true};合并重复索引。例如 a1a2 转为 {a: [‘1’, ‘2’]};合并的值不能重复。例如 a1a2a2 转为 {a: [‘1’, ‘2’]}; type ConvertStrToRecordUpStr extends string Str extends ${infer Key}${infer Value} ? { [K in Key] : Value } : Str extends ${infer Key} ? { [K in Key]: true } : {}; type ConvertStrToRecordUpStr ConvertStrToRecordUpa; // type ConvertStrToRecordUpStr { // a: true; // }// 合并重复索引 type CheckDuplicateA extends Recordstring, any, B extends Recordstring, any keyof B extends keyof A ? AddRA, B : CombineIndexA, B; type AddRA extends Recordstring, any, B extends Recordstring, any {[K in keyof A] : K extends keyof B ?CheckInclueA[K], B[K] extends true ? A[K] : // 重复索引合并值值不能重复A[K] extends any[] ? [...A[K], B[K]] : [A[K], B[K]] : A[K] }type CheckInclueA extends any[], B extends string A extends [infer First, ...infer Rest] ? First extends B ? true : CheckInclueRest, B : false; type checkIncludeDemo CheckInclue[a, b, c], a; // type checkIncludeDemo truetype ParseUpStr extends string, Res extends Recordstring, any {} Str extends ${infer One}${infer Rest} ?ParseUpRest, CheckDuplicateRes, ConvertStrToRecordUpOne :CheckDuplicateRes, ConvertStrToRecordUpStrtype parseToRecordUp ParseUpa1ba2a3cd4ee10a3; // type parseToRecordUp { // b: true; // c: true; // a: [1, 2, 3]; // e: [true, 10]; // d: 4; // }
http://www.dnsts.com.cn/news/209122.html

相关文章:

  • 宁波seo在线优化公司东莞百度seo服务公司
  • 广西钦州网站建设wordpress粉色主题
  • 建设房屋出租网站百度竞价怎么做效果好
  • 个人音乐网站源码厅网站集约化建设
  • 网站推广计划的内容深圳找工作哪个网站好
  • 网站装修怎么做编程软件app
  • 可以登录国外网站吗红色风格网站
  • 网站怎么做权重深圳最新新闻事件今天
  • 空调安装东莞网站建设广州建网站藤虎
  • 大学网站建设做微商想做个网站
  • html网站建设代码专业的建网站公司地址
  • 视频网站怎么做网站引流慈溪哪里有做网站
  • 注册网站流程怎么用群晖nas做网站
  • 成都网站建设维护优惠购网站怎么做的
  • wordpress 闭站wordpress添加 logo
  • 查询证书网站建设如何制作网址内容
  • 微信引流推广 方法百度seo排名报价
  • 视频网站做游戏分发免费推广网站大全下载安装
  • 网上建立网站做网站是做广告吗
  • 网站建设及维修合同范本阆中做网站
  • 中国建设银行网站对公业务产品推广的渠道有哪些
  • 郑州网站建设代理网站运营与推广
  • 深圳华企网站建设html5教程初学者
  • 网站推广排名外包欧米茄官网网站
  • 做网站关键词优化的公司山东网站建设哪家好
  • 提交百度收录深圳快速seo排名优化
  • 班级网站网页设计网站导航条制作
  • 河南企起网站建设成都网站备案太慢
  • 做网站需要接口么小程序推广代理商
  • 怎么用服务器搭建网站wordpress 模板选择