自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(311)
  • 收藏
  • 关注

原创 这次是真的学会infer了

类型太多了,这里就举例string,number,boolean这几种类型,效果是一样的,结果都是返回入参的数据类型,类似于typeof,它和typeof,各种数据类型是属于同一级别的方法。2.这里推导数组里某个值的数据类型。手写个infer,看了很简单的。

2024-07-25 19:57:12 135

原创 type Required<T> = { [P in keyof T]-?: T[P] } 这里的-?是干啥用的,+?是干啥用的

修饰符的作用是从一个联合类型中去除属性的可选性。当一个属性原本是可选的(即可以省略),使用。相反,它将属性标记为可选的。如果属性原本就是可选的,那么。但如果属性是必需的,那么。后,该属性就变成了必需的(必须被指定)。去掉问号,变成必选属性。加上问号,变成可选属性。

2024-07-25 19:29:47 125

原创 ts源码2

https://github.com/Microsoft/TypeScript

2024-07-25 16:20:08 50

原创 some和every

every:每一项符合条件就返回true,反之。some:某一项符合条件就返回true,反之。

2024-07-25 11:09:36 63

原创 flex:1

2.flex-shrink,在flex布局中经常会遇到页面宽度不够而导致的文字换行问题,由于flex布局默认flex-shrink为1,就是默认可以缩小然后会导致换行,需要设置flex-shrink:0,默认不缩小就可以了。上面是120px高,给下面的外盒子高度设置为calc(100% - 120px);答:给外部盒子添加display:flex,内部盒子设置为flex-grow:1。现在有一个上下盒子,上面是固定值,下面是随页面高度变换的,如何让下面盒子的子盒子高度适应外部的高度呢?

2024-07-25 10:45:42 338

原创 ts -> class -> abstract

类,TypeScript 编译器会报错,因为抽象类不能被实例化。只有当子类实现了所有抽象方法之后,才能被正确地实例化和使用。抽象类不能被实例化,而抽象方法必须在派生类中被实现。在TypeScript中,你可以直接使用。是一个抽象类,它包含了一个抽象方法。关键字来定义抽象类和抽象方法。方法(是必须,不然会报错)如果你试图直接实例化。

2024-07-24 15:25:18 193

原创 类型谓词 is

然后在后续处理的时候就可以大胆放心的使用value这个类型为number的值。以上是两个函数,但是在()后面确是不同的用法。第二个属于函数的返回值类型。第一个val is null属于类型谓词。

2024-07-22 11:21:48 147

原创 box-shadow

【代码】box-shadow。

2024-07-19 17:00:01 157

原创 this.course.find(search).sort({ _id: -1 }).skip(skip).limit(Number(pageSize)).exec() nest,mogodb

在NestJS中,这样的查询通常在一个异步函数中执行,结果可能被用来填充HTTP响应或进一步处理。例如,在一个控制器的GET方法中,你可以使用这种查询来获取和返回分页的课程列表。方法实际执行了构建好的查询,并返回一个Promise,该Promise在查询完成后解析为结果集。这是Mongoose查询链上的最后一个方法,用于触发查询并获取结果。: 这是一个指向Mongoose模型的引用,通常是在控制器或服务中定义的。参数应该是一个对象,其中键是数据库字段名,值是要匹配的值。,最后执行这个查询并返回结果。

2024-07-19 16:48:29 276

原创 nest中的public,this,readonly,class类,@Injectable()

【代码】nest中的public,this,readonly,class类,@Injectable()

2024-07-19 16:38:22 110

原创 promise + ts

这里使用interface定义函数,是可以的,但也是第一次见 【入参】:【返回值】现在有这么个代码,是有问题的。

2024-07-18 10:54:38 91

原创 nest中的注解

这是一个类装饰器,用于定义Mongoose模式的结构。它允许你指定模式的元数据,比如集合名、版本键、时间戳等。:这是一个装饰器,用于在模式类中定义文档的各个属性。你可以使用它来指定字段的数据类型、是否必填、默认值等属性。创建的,可以被NestJS模块使用,以便在你的应用程序中执行CRUD操作和其他数据库相关的任务。:这是一个工具函数,用于从定义的模式类中创建实际的Mongoose模式对象。是一个Mongoose模式对象,它是由。方法从一个类定义中创建模式。装饰器来定义字段的属性。类是一个模式类,它使用。

2024-07-16 15:42:01 136

原创 el-table 排序默认升降排序,远程查询

【代码】el-table 排序默认升降排序,远程查询。

2024-07-15 19:59:09 83

原创 软链接node_modules

2.win + r -------> cmd --------> ctrl+shift + enter(已管理员身份打开cmd)公司项目很多微应用的子项目公用同一套模板,也就会使用同一个node_modules。1.先创建3个同样的项目,并安装一个其中的一个node_modules给他丢到外边。在项目中如下:是创建了一个快捷键的文件夹和桌面的软件都有同样的光标。3.在窗口分别执行以下代码。

2024-07-11 21:11:11 348

原创 react父调用子的方法,子调用父的方法

【代码】react父调用子的方法,子调用父的方法。

2024-07-11 11:07:17 117

原创 react书写规范

2.onClick事件。

2024-07-04 00:25:47 121

原创 for await...of

确保了每次循环都会等待当前的异步操作完成后再继续下一次迭代。这意味着即使每个项目处理是异步的(例如涉及网络请求或文件I/O),你也可以按顺序处理它们,而无需手动管理Promise链或回调函数。是JavaScript中的一种循环结构,特别设计用于异步迭代。它允许你以一种简洁、同步风格的方式遍历异步可迭代对象(如那些通过异步生成器函数产生的)。这对于处理异步操作,如。循环提供了一种优雅的方式来遍历异步数据源,使得异步编程更加直观和易于管理。循环,所在的函数必须被声明为。只能在异步函数内部使用。

2024-06-22 17:21:31 284

原创 泛型中<>和()中的类型

这样做的好处是,我们可以在调用函数时显式地指定参数的类型,而不是依赖类型推断。这对于合并不同类型的数组非常有用,因为我们可以确保传递给函数的参数类型是我们期望的类型。如果不指定类型参数,TypeScript 会尝试根据传递的参数推断出类型,但有时候推断结果可能不是我们想要的。因此,通过明确指定类型参数,我们可以更精确地定义函数的行为。中的类型参数用于定义函数内部的类型,并与函数参数的类型进行关联。然后,在调用函数时,我们通过。

2024-06-17 00:04:31 140

原创 结构赋值对象

经过处理后当对象迭代的时候会变成可迭代的数组然后迭代,或者可以自定义key值去迭代,这里转换成了value值。

2024-06-04 15:01:33 166

原创 react 合成事件

当然,很高兴为你解释React中的合成事件概念,非常适合React初学者理解。想象一下,你正在组织一场派对,为了让派对顺利进行,你需要管理各种活动,比如游戏、音乐和食物分配。但是,直接管理每一个细节(比如,关注每个人何时拿取食物、何时参与游戏)会非常复杂且容易出错。所以,你决定设立一个“活动台”,所有的活动请求都先经过这里,由“活动台”统一安排和协调。在React的世界里,这个“活动台”就像是合成事件系统。

2024-06-03 10:59:09 391

原创 @Injectable的使用案例

是 Nest.js 中一个非常关键的装饰器,用于标记一个类可以被依赖注入(Dependency Injection)系统识别和管理。这意味着,装饰了的类可以被其他类(如控制器、服务)通过构造函数注入为依赖。下面是一个使用的基本案例,展示了一个服务类如何被创建和注入到控制器中。

2024-05-29 16:24:03 311

原创 ts中的class类

构造函数使用 TypeScript 中的参数属性语法来声明一个公共的 name 属性,并在构造函数中进行初始化。move 方法接受一个表示距离的数字参数,并在控制台中打印动物移动的信息。要在 JavaScript 环境中运行这个 TypeScript 类,你可以使用 TypeScript 编译器将其编译为 JavaScript 代码。在编译之后,可以在浏览器或 Node.js 等环境中运行生成的 JavaScript 代码。

2024-05-22 10:56:49 239

原创 antd组件状态变换为啥要使用剪头函数

简单的解释:会在页面渲染的时候执行setState导致触发了reRender然后陷入死循环了。这个例题也是可以看下比较有意思。

2024-05-11 15:20:39 217

原创 umi中history和useModel的使用

是一个用于在函数式组件中获取和操作 Umi Model 的钩子函数。在 Umi 中,Model 是一种用于管理数据和状态的概念,可以帮助你更好地组织和管理应用程序的数据流。,你可以在函数式组件中轻松地访问和操作 Model 中的数据和方法。,你可以在不同页面之间进行跳转、监听路由变化等操作。在 Umi 中,通常会使用。是用于在 React 组件中进行页面导航和管理历史记录的工具。对象来实现页面的跳转和路由相关的操作。

2024-05-09 13:45:57 580

原创 nest中的ORM

在 Nest.js 中执行 SQL 查询通常涉及使用 TypeORM 或 Sequelize 这样的 ORM(对象-关系映射)库。这些库使得在 Nest.js 应用程序中连接和操作 SQL 数据库变得更加简单和直观。在user模块中的service中;在user模块中的entites中;很明显没有使用sql语句,但是也完成了sql操作;

2024-05-07 19:43:13 244

原创 @Injectable()

装饰器标记一个类时,它告诉 Nest.js 这个类是一个可以被注入到其他地方使用的服务。这意味着你可以在你的应用中的不同地方重复使用这个服务,而不必每次都手动创建它的实例。这样做的好处是,你可以在整个应用中使用同一个日志服务,并且可以更轻松地管理它。这意味着我们可以在应用的其他地方注入和使用这个服务。的作用就是让你的服务变得可注入、可重用,让你的代码更加简洁和可维护。好的,以下是一个简单的代码示例,演示了如何在 Nest.js 中使用。你可以在你的应用的任何地方使用。的控制器,并在它的构造函数中注入了。

2024-04-29 18:07:09 338

原创 vue3,element-plus,图片预览

【代码】vue3,element-plus,图片预览。

2024-04-26 15:08:00 357

原创 面试题、、、

mutations 允许你明确定义状态的变更操作,避免了直接在组件中进行状态更改导致的混乱和不可预测性。使用 mutations 可以确保应用遵循单向数据流的原则,即数据的流动是单向的,只能通过特定的方式进行更改。通过使用 mutations,状态的更改是可追踪的。你可以在 mutation 中记录状态的变化,以便在调试和排查问题时更容易追踪状态的变化历史。虽然在某些情况下,直接更改状态可能会更简单和方便,但使用 mutations 有助于提高代码的可维护性、可扩展性和可预测性。

2024-04-25 18:05:47 160

原创 react,Chart,echarts

同一个窗口打开官网地址能获取到的人家的Json数据的。控制台可见:右击 Copy object就复制了。解决办法2:在示例代码中添加如下代码。2.然后实现下这个案例。

2024-04-24 18:12:27 417

原创 埋点,自己写插件,自己写的按钮埋点,掘金同款投递简历

vite的生命周期啥的。

2024-04-22 15:13:37 528 1

原创 图片懒加载

的页面,这有两个属性src和data-src。页面滚动到图片的位置才会加载相应的图片。

2024-04-18 16:22:07 225

原创 .call,循环类数组对象

4.Array.prototype.forEach()(借助Function.prototype.call())这里不是重点介绍如何循环类数组对象的。1.使用for循环(基于index)

2024-04-16 17:59:58 165

原创 type GetNamespaces<M> = { [K in keyof M]: M[K] extends { namespace: string } ? M[K][‘namespace

是一个包含多个属性的接口,每个属性都是一个对象,可能包含一个。,其中包含多个属性,每个属性都是一个对象,而这些对象可能具有。属性的子属性的集合。类型来定义函数参数,确保只能传递有效的命名空间。现在我们想要从这些对象中提取所有具有。属性的子属性的集合,并将其赋值给。下面是一个示例,演示了如何使用。类型可以用于从一个对象类型。假设我们有一个对象类型。属性的子属性的集合。

2024-04-15 18:05:18 219

原创 Awaited,Promise

现在,我们想要在另一个文件中使用这个异步函数的返回值,并且希望能够推断出这个返回值的类型。函数,它返回一个 Promise,我们等待该 Promise 解析,并将结果赋给。这将返回一个 Promise,该 Promise 的解析值类型为。函数返回的 Promise 的类型,你可以直接使用。下面是一个简单的示例,展示了如何使用。在这个示例中,我们首先定义了一个类型。对象的属性,这些属性的类型是根据。函数并等待其解析,然后使用。的类型,而不需要手动指定。函数返回的类型推断出来的。在这个示例中,我们使用。

2024-04-15 18:02:28 371

原创 InstenceType

在 TypeScript 中,InstanceType 是一个用于获取构造函数类型的实例类型的工具类型。它接受一个构造函数类型,并返回该构造函数的实例类型。这对于在编写 TypeScript 代码时操作类和构造函数非常有用。这样可以在编写 TypeScript 代码时,以类型安全的方式操作类和构造函数的实例类型。来获取它的实例类型。在这个示例中,我们首先定义了一个类。,它有一个构造函数和一个方法。的构造函数类型,并使用。的一个实例,然后调用了。

2024-04-12 17:12:13 258

原创 索引签名Argument of type ‘Person‘ is not assignable to parameter of type ‘Record<string, string>‘ Index

可以添加索引签名([key: string]: string;

2024-04-12 11:08:01 200

原创 node中可以使用js的三个模块dom,bom,ecmSrimpt吗

Node.js使用V8 JavaScript引擎来执行ECMAScript代码,这意味着在Node.js中,你可以编写和使用符合ECMAScript标准的语法、数据类型、函数、对象、控制结构等语言特性。在Node.js环境中,不能直接使用浏览器提供的Document Object Model (DOM)和Browser Object Model (BOM),因为这两个概念是浏览器特有的API集合,它们与浏览器的用户界面、窗口管理、事件处理、文档结构操作等功能紧密关联,专为浏览器环境设计。

2024-04-10 21:14:51 339

原创 微前端学习

在微前端架构中,with关键字和Proxy对象常被用来实现子应用的运行时隔离,确保不同微应用之间的全局变量、函数等资源互不影响,从而保障系统的稳定性与安全性。with。

2024-04-10 20:41:25 494

原创 子传父vue/react

子传父:很多都是结合defineEmit来实现的,这里通过给子组件传递函数,子组件调用传递下来的函数实现传值。

2024-04-10 17:36:03 401

原创 https怎么加密的

HTTPS(HyperText Transfer Protocol Secure)是HTTP的安全版本,其加密过程主要基于两个协议:SSL(Secure Sockets Layer,安全套接层)和TLS(Transport Layer Security,传输层安全)。TLS是SSL的继任者,目前更广泛地被使用。值得注意的是,虽然HTTPS可以提供更高的安全性,但并不意味着绝对安全,仍然可能存在某些攻击手段能够破解或者绕过HTTPS的加密机制,因此在实际应用中还需要综合考虑其他安全措施。

2024-04-09 18:00:29 338

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除