16. TypeScript 类型运算符
TypeScript 提供强大的类型运算能力,可以使用各种类型运算符,对已有的类型进行计算,得到新类型。 注意区分typeof,typeof是用于查看一个变量的类型 keyof 是一个单目运算符,接受一个对象类型作为参数,返回该对象的所有键名组成的联合类型。 由于 JavaScript 对象的键名只有三种类型,所以对于任意对象的键名的联合类型就是string|number|symbol。 keyo…
15. declare 关键字与d.ts
declare 是 TypeScript 中的关键字,用于声明变量、函数、类、模块或类型的存在,但不做具体实现。它的作用是告诉 TypeScript 编译器:“这个东西已经存在了,在别的地方定义了,你就不要再报错了”。 declare 关键字用来告诉编译器,某个类型是存在的,可以在当前文件中使用。 它的主要作用,就是让当前文件可以使用其他文件声明的类型。举例来说,自己的脚本使用外部库定义的函数,编…
13. 命名空间namespace
namespace 用来建立一个容器,内部的所有变量和函数,都必须在这个容器里面使用。 上面示例中,命名空间Utils里面定义了一个函数isString(),它只能在Utils里面使用,如果用于外部就会报错。 如果要在命名空间以外使用内部成员,就必须为该成员加上export前缀,表示对外输出该成员。 编译后命名空间Utility变成了 JavaScript 的一个对象,凡是export的内部成员,…
10. Enum类型(枚举)
enum(枚举)在 TypeScript 中是一个用于定义一组命名常量的工具,它可以让代码更加清晰、可读、可维护。 假设你有一组固定的值,比如一周的七天、订单状态、用户角色、性别等等。用字符串或数字硬编码是很容易出错的,比如: Enum 结构的特别之处在于,\\它既是一种类型,也是一个值。\\绝大多数 TypeScript 语法都是类型语法,编译后会全部去除,但是 Enum 结构是一个值,编译后会…
8. TS Class
类(class)是面向对象编程的基本构件,封装了属性和方法,TypeScript 给予了全面支持。 类的属性可以在顶层声明,也可以在构造方法内部声明。 TypeScript 有一个配置项strictPropertyInitialization,只要打开(默认是打开的),就会检查属性是否设置了初值,如果没有就报错。 上面示例中,如果类的顶层属性不赋值,就会报错。如果不希望出现报错,可以使用非空断言…
7. TS的interface
interface是对象的模板,可以看作是一种类型约定,中文译为“接口”。使用了某个模板的对象,就拥有了指定的类型结构。也就是说,能用来声明一个对象的结构。 和type类似,但是interface主要用于描述对象结构,不支持直接定义基本类型、联合类型。元组。而type 可以描述任何类型(包括基本类型、联合类型、元组等)。 interface能用extends,可继承多个接口,而type需要用&来组…
6. TS对象类型标注
直接标注: 属性的类型可以用分号结尾,也可以用逗号结尾。 除了type命令可以为对象类型声明一个别名,TypeScript 还提供了interface命令,可以把对象类型提炼为一个接口。 如果某个属性是可选的(即可以忽略),需要在属性名后面加一个问号。 属性名前面加上readonly关键字,表示这个属性是只读属性,不能修改。只读属性只能在对象初始化期间赋值,此后就不能修改该属性。 如果对象的属性非…
1. 了解Typescript
背景:前端工作已经有好几年了,ts也接触了不少,但一直是知其然不知其所以然。虽然知道它对于前端来说很重要,也有想过去了解,但是始终没有静下心系统的进行学习。最近环境不太好,所以计划利用这个周末的时间来系统性学习、查缺补漏。目标是完全弄懂概念以及在实战中的应用。 一开始打算使用视频来学习,但是感觉太慢了。说的比较基础,也难以找到合适我的视频。所以使用阮一峰老师的ts博客进行学习。本系列文章主要用于记…
免费获取ssl证书,轻松开启Https
在同事的介绍下知道了Let's Encrypt。免费获取ssl证书,将http变为https。 官网: [链接] (官网看不懂,还是AI好用,直接给我提纯了) 使用方式很简单: 1. 一个已绑定到服务器的域名(如 example.com) 2. 你的网站通过该域名能被访问(公网 IP、80/443 端口已开放) 3. 服务器上有 root 权限 4. 已安装好 Nginx 或 Apache (总结…
发现了一个好用的编辑器
官网: Quill 用了一段时间的w-editer,说实话挺难用的。就想着换一个,不过问AI出来的都是一堆很知名很商业化的东西,不是会员都只能试用。会员价格还老高,我这种小网站根本无力承担。 今天在群里问了问,还真发现了一个叫Quill的富文本编辑器。免费,好用,好看,轻量。 有很多API,能够获取笔记字数,监听文本是否发生改动等。工具栏也很好配置。 还有很多功能没仔细研究,有空再集成进来。 官网…
简单部署deepseek
安装到本地文档: [链接] Ollama 配置: [链接] GraphRAG: [链接] 阿里云服务支持: [链接] 今天试着本地部署了一下deepseek的残疾版本,deepseek-r1-1.5b。 很简单,下载ollama之后使用ollama run deepseek-r1:1.5b就行了。 (缺点是本地安装了ollama死活无法下载模型,而使用docker启动之后就能飞速安装大模型了,还不…
TailwindCSS集成踩坑记录
难受,今天在集成TailwindCSS的时候,不管是ChatGPT还是Tailwind中文文档,给出的集成方法都是落后于最新版本的。查看了官方英文文档,很轻松就安装上了。 被折腾了几个小时,各种死循环,各种焦虑。 还是要学好英语。别人嚼碎的,可能还没嚼烂。 解决github无法通过22端口访问的问题: [链接]
将Java项目部署到服务器
为了把Java项目部署到服务器上,我可走了不少万弯路,现在将这些方法分享给大家。 最初使用的方案,手动部署: 1. 先上服务器,使用ps aux | grep java和kill -9 \<PID关闭正在运行的Java 2. 本地使用mvn clean package打包 3. 将打包后的jar包上传到服务器:scp target/projectName.jar root@<服务器ip:/var/…