ts装饰器
装饰器介绍装饰器其实就是一个函数,通过注入的方式到类、方法、属性、参数上,拓展其功能。 注意 装饰器是一项实验性特性,在未来的版本中可能会发生改变。 所以,需要在tsconfig.json中开启兼容 1"experimentalDecorators": true, 装饰器使用语法如下: 12345function fun1() {}@fun1 // 等同于fun(Person1)class Person1 {} 类装饰器123456789101112// 类装饰器function fun1(target: any) { // 这里的参数就是装饰的类 target.prototype.name = "lisi";}@fun1class Person1 {}let p1 = new Person1();//...
对于AI的基本理解
对于AI的基本理解Prompt在chatGPT诞生的时候,对于AI的理解就是一个聊天框。当输入一条语句给AI的时候,它就会返回一条答案或者回复给我们。而在这里,我们发送的消息就叫做Prompt(User Prompt)。 但是,这样的回复不能满足用户,因为这样的AI只是很单一的,它没有一个人设,不像平常的聊天,不同的人对于同一个问题可能有不同的回复。因此,我们需要给他一个人设,就可以在聊天框中给它绑定一个人设,那么下次回答他就可以根据它的人设背景进行回答了。 这里就有出现了一个问题,我们每次和它聊天都需要进行人设的绑定,这样显得很麻烦。所以,就有了另外的Prompt————System Prompt,我们可以将它的人设存放在这里,我们给它发送消息时,就不用给它重新绑定人设了,因为AI得到的消息是User Prompt + System Prompt。 AI AgentAgent就是能自主感知环境、做出决策并执行行动的智能体,它和普通的AI模型是有一定的区别的。 AI模型是被动响应(chatGPT等) AI...
设计模式
设计模式设计模式简介通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的 前端常用设计模式工厂模式一种创建对象的方式,使得创建对象的过程与使用对象的过程分离。在前端,常用于动态创建组件,比如创建相似样式和行为的按钮(比如antd中的按钮) 我们来模拟一下创建antd的按钮的工厂 首先,我们先定义一个接口,表示:按钮需要有点击事件和不同的样式,然后每个按钮类都去实现这个接口 123456789101112131415161718192021222324252627282930313233343536373839404142434445//模拟按钮的行为与行为interface Button { // 点击事件 onClick(): void; // 渲染不同的样式 render(): void;}// 这个Primary按钮class PrimaryButton implements Button { render()...
前端基础知识
Object.is() 和 “”==”” 的区别 双等号(==):如果两边类型相同,则会进行严格比较;如果类型不同,进行类型转换,再进行比较。如null和undefined相等、布尔转数字、字符串转数字、对象转原始。 Object.is():类型不同,返回false;类型相同,进行比较。其中,-0和+0不等,NaN和NaN相等。 0.1+0.2为什么不等于0.3,原理是什么? 在JavaScript中,小数的计算会先将小数转换为二进制数,再进行计算。由于0.1和0.2不能准确转换为有限的二进制数,所以会有精度损失,导致这两个数的相加不等于准确值。 小数转换为二进制数 整数部分的转换方法已掌握。 小数部分:将小数乘以2,记录整数部分,将小数部分继续乘以2,直到小数部分为0,将整数正序排列。 typeof能区分数组和对象吗?判断数组的方法有哪些? typeof不能区分出数组和对象,因为得到的值都为’object’。 判断数组的方法:使用Object.prototype.toString(结果为[object...
git常用指令
基础配置123# 设置全局用户名/邮箱(首次使用必须)git config --global user.name "Your Name"git config --global user.email "your@email.com" 仓库操作12345# 克隆仓库git clone <仓库名># 初始化操作git init 提交修改1234567891011121314# 查看当前文件状态git status# 单文件添加到暂存区git add <文件名># 暂存所有文件git add .# 提交暂存区内容并添加描述git commit -m "描述"# 修改最近一次提交的描述(没有push时)git commit --amend 分支管理1234567891011121314151617181920# 查看本地分支git branch# 查看所有分支(包括远程)git branch -a# 创建新分支git branch <分支名># 切换分支git checkout...