- 博客(48)
- 资源 (1)
- 收藏
- 关注
原创 Windows Service Wrapper 一个将可执行文件封装为windows服务的工具
windows service wrapper将可执行程序封装成windows服务
2022-09-20 11:23:34 2586
原创 git--src refspec master does not match any.错误解决
错误日志PS D:\gitporjects\vuecabulary> git initInitialized empty Git repository in D:/gitporjects/vuecabulary/.git/PS D:\gitporjects\vuecabulary> git remote add origin https://gitee.com/*/*-origin.gitPS D:\gitporjects\vuecabulary> git push -u orig
2022-05-25 00:08:08 357
原创 抄一个ts冒泡排序的实现(面试题)
// Type level bubble sort algorithm// https://twitter.com/anuraghazratype BubbleSort< A extends any[], Curr extends number = A["length"]> = Curr extends 1 ? A : A extends [infer F, infer S, ...infer Rest] ? BubbleSort< [
2022-04-08 09:21:58 152
原创 termux换源失败解决
解决方法:pkg remove game-repopkg remove science-repopkg update
2022-01-16 00:31:49 3312 1
原创 链式调用timeout
对timeout的两种封装,链式调用第一种,一开始将所有的time设置好export class TimeOut { private sleep: number; constructor(sleep?: number) { this.sleep = sleep ? sleep : 0; } do(fn: () => void) { if (this.sleep) { setTimeout(() => {
2021-12-15 10:28:29 750
原创 TypeScript 之模板字面量类型
模板字面量类型(Template Literal Types)模板字面量类型以字符串字面量类型为基础,可以通过联合类型扩展成多个字符串。它们跟 JavaScript 的模板字符串是相同的语法,但是只能用在类型操作中。当使用模板字面量类型时,它会替换模板中的变量,返回一个新的字符串字面量:type World = "world"; type Greeting = `hello ${World}`;// type Greeting = "hello world"当模板中的变量是一个联合类型时,每
2021-12-07 22:40:19 508
原创 Nginx总结
一、location用法0.常见的正则表达式符号符号 含义$ 匹配输入字符串的结尾位置( ) 标记一个子表达式的开始和结束位置* 匹配前面的子表达式一次或多次^ 匹配输入字符串的开始位置\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符| 指明两项之间的一个选择. 匹配除换行符 \n 之外的任何单字符? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符~ 表示执行一个正则匹配,区分大小写如果要匹配以
2021-11-25 00:01:03 948
原创 ARP协议个人总结
一:引入当网络设备要发送数据给另一台设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP协议来实现的。ARP协议是TCP/IP协议簇中的重要组成部分,ARP能够通过目的IP地址发现目标设备的MAC地址,从而实现数据链路层的可达性。二:ARP数据包的格式ARP协议_ARP注意:ARP
2021-11-22 20:14:25 3150
原创 DNS个人总结
域名,顶级域名,二级域名,三级域名都是什么DNS,就是Domain Name System的缩写,翻译过来就是域名系统,是互联网上作为域名和IP地址相互映射的一个分布式数据库。DNS能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。test.com 顶级域名就一个点test.cn.com 二级域名两个点 (意思即.cn在.com这个范围,以下同理)test.mail.cn.com 三级域名三个点寻
2021-11-21 22:25:26 1116
原创 HTTPS的个人理解总结
https原理明文传输对称加密非对称加密明文传输问题,传输内容完全透明。对称加密原理:f1(key,data) = X; //key为密钥,data为数据, x为密文f2(key,X) = data;存在问题:所有客户端都使用同样的密钥,黑客使用客户端角色就可以拿到密钥。非对称加密原理:公钥加密,私钥解密或私钥加密,公钥解密。f(publickey,data) = Y;f(privatekey,Y) = data;或f(privatekey,data) = Y;f(public
2021-11-17 22:47:25 60
原创 http协议结构
HTTP协议结构请求报文和响应报文都是由以下4部分组成1.请求行请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。比如 GET /data/info.html HTTP/1.1方法字段就是HTTP使用的请求方法,比如常见的GET/POST其中HTTP协议版本有两种:HTTP1.0/HTTP1.1 可以这样区别:HTTP1.0对于每个连接都只能传送一个请求和响应,请求就会关闭,HTTP1.0没有Host字段;而HTTP1.1在同一个连接中可以传送多个请求和响应,多
2021-11-17 15:25:00 2721
原创 对一个ts类型推导的理解
开始的疑惑的点在:为什么Options可以根据参数推导出T就是 { a:number,context:… }这样的类型。后来转变下思考方式,参数中的对象 {a:1,context:…}就等同于 {[K in keyof T]: K extends ‘context’ ? T[K] : number}这个字面量,也就是说K就是对象中的所有key,而当遍历完了这个对象,他就是 Optionstype Options<T> = { [K in keyof T]: K extends
2021-10-11 11:38:17 266
转载 TS操作符总结
转载自掘金:coolFishhttps://juejin.cn/post/6844903881860874254序言最近开始学习TS,发现了很多困难,过了这道坎以后,发现TS的操作符就像拼音是汉字的基础一样,学好TS操作符,是学好TS的重中之重,我们今天就来详细的了解一下TS的操作符。typeof在 TypeScript中,typeof 操作符可以用来获取一个变量的声明,或是对象的类型。我们看两个小例子//例子1interface People { name: string; age:
2021-09-22 10:18:43 964
转载 Vue+elementUI表单验证
Vue+elementUI表单验证在使用Vue+elementUI的项目中,提供了表单验证的功能,可以根据自己的需求对表单进行验证,判断输入值是否合理,能灵活的自定义表单验证规则。表单验证方法:this.$ref.[formame].validate(valida)=>{}首先需要注意几个点:.1.使用此方法前检查prop一定必须要写在上面,写在里面的input上或者其他任何地方都不行(el-form-item prop属性绑定)2.el-form rules,model属性绑定,ref标
2021-08-09 15:14:01 582
原创 typescript 复杂类型 Utility Types
TypeScript学习之Utility TypesPartialRequiredReadonlyRecordPartial作用:它会将Type内所有属性置为可选,返回一个给定类型Type的子集。示例:interface Todo { title: string; description: string;}// 场景:只想更新toTo部分属性,Partial的使用就比较优雅了function updateTodo(todo: Todo, fieldsToUpdate: Partial&
2021-08-09 11:36:14 323
原创 typescript接口难点理解
TS总结接口接口1、对对象类型的检查interface SquareConfig { color: string; width: number;}function createSquare(config: SquareConfig): { color: string; area: number } { // ...}let mySquare = createSquare({ color: "red", width: 100 });2、对函数类型的检查为了使用接
2021-08-06 16:20:41 364
原创 Rpc 文章转载
https://developer.51cto.com/art/201906/597963.htm#10006-weixin-1-52626-6b3bffd01fdde4900130bc5a2751b6d1
2020-11-24 17:41:13 89
原创 for循环跳出
aa: for (let a = 10; a < 20; a++) { bb: for (let b = 20; b < 30; b++) { cc: for (let c = 30; c < 40; c++) { dd: for (let d = 40; d < 50; d++) { e...
2020-09-23 15:34:14 131
原创 解决mouseover闪烁的问题
问题原因:当鼠标移入一个元素,需要在该元素旁显示一个层,显示层遮住了添加事件的元素,所以反复执行 。onmouseover onmouseout。查资料总结:方法一:把mouseover和mouseout换成对应的mouseenter和mouseleave。当鼠标指针位于元素上方时,会发生 mouseover 事件。该事件大多数时候会与 mouseout 事件一起使用。注释:与 mouseenter 事件不同,不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。只有在鼠标指
2020-09-08 20:04:47 1847
转载 微任务宏任务及vue nextTick的分析
写的很清晰https://www.cnblogs.com/yaoyao-sun/p/10475689.html#_label2
2020-08-31 15:40:13 358
转载 MessageChannel的使用
我们知道:在浏览器环境中,常见的 macro task 有 setTimeout、MessageChannel、postMessage、setImmediate。而常见的 micro task 有 MutationObsever 和 Promise.then。Vue中对于 macro task 的实现,优先检测是否支持原生 setImmediate,这是一个高版本 IE 和 Edge 才支持的特性,不支持的话再去检测是否支持原生的MessageChannel,如果也不支持的话就会降级为 setTimeou
2020-08-29 12:39:08 1133
个人背单词软件,悬挂在桌面上适合摸鱼
2022-05-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人