Latest Posts

文章

记录技术、生活和一些阶段性的想法。

TS系列185029 阅读

11. 类型断言

TypeScript 提供了“类型断言”这样一种手段,允许开发者在代码中“断言”某个值的类型,告诉编译器此处的值是什么类型。TypeScript 一旦发现存在类型断言,就不再对该值进行类型推断,而是直接采用断言给出的类型。 对于没有类型声明的值,TypeScript 会进行类型推断,很多时候得到的结果,未必是开发者想要的。 上面示例中,最后一行报错,原因是 TypeScript 推断变量foo的类…

阅读全文
TS系列117329 阅读

10. Enum类型(枚举)

enum(枚举)在 TypeScript 中是一个用于定义一组命名常量的工具,它可以让代码更加清晰、可读、可维护。 假设你有一组固定的值,比如一周的七天、订单状态、用户角色、性别等等。用字符串或数字硬编码是很容易出错的,比如: Enum 结构的特别之处在于,\\它既是一种类型,也是一个值。\\绝大多数 TypeScript 语法都是类型语法,编译后会全部去除,但是 Enum 结构是一个值,编译后会…

阅读全文
TS系列147729 阅读

9. 泛型

前面的是比较基础的,后面的对我来说就是进阶的了。想要玩转企业级开发,后面的东西必须认真对待了。 有些时候,函数返回值的类型与参数类型是相关的。 上面示例中,函数getFirst()总是返回参数数组的第一个成员。参数数组是什么类型,返回值就是什么类型。 这个时候只能用any来处理了 但是这样的标注,就反映不出参数与返回值之间的类型关系。就算返回一个'123'也不会报错。 为了解决这个问题,TypeS…

阅读全文
TS系列318928 阅读

8. TS Class

类(class)是面向对象编程的基本构件,封装了属性和方法,TypeScript 给予了全面支持。 类的属性可以在顶层声明,也可以在构造方法内部声明。 TypeScript 有一个配置项strictPropertyInitialization,只要打开(默认是打开的),就会检查属性是否设置了初值,如果没有就报错。 上面示例中,如果类的顶层属性不赋值,就会报错。如果不希望出现报错,可以使用非空断言…

阅读全文
建站相关85231 阅读

优化OSS

刚试了一下优化OSS 前两天已将删除图床图片时删除OSS图片了。但是还没有实现删除文章时清理文章中的图片。 之前在浏览器访问OSS图片链接的时候会自动弹出下载,原因是出于安全考虑,当您通过Bucket默认域名访问某些文件时,可能会触发强制下载或禁止下载。如果您希望在浏览器中正常预览或下载这些文件,您需要为Bucket绑定自定义域名,并通过自定义域名访问OSS文件。绑定自定义域名不会影响Bucket…

阅读全文
TS系列72529 阅读

7. TS的interface

interface是对象的模板,可以看作是一种类型约定,中文译为“接口”。使用了某个模板的对象,就拥有了指定的类型结构。也就是说,能用来声明一个对象的结构。 和type类似,但是interface主要用于描述对象结构,不支持直接定义基本类型、联合类型。元组。而type 可以描述任何类型(包括基本类型、联合类型、元组等)。 interface能用extends,可继承多个接口,而type需要用&来组…

阅读全文
TS系列58428 阅读

6. TS对象类型标注

直接标注: 属性的类型可以用分号结尾,也可以用逗号结尾。 除了type命令可以为对象类型声明一个别名,TypeScript 还提供了interface命令,可以把对象类型提炼为一个接口。 如果某个属性是可选的(即可以忽略),需要在属性名后面加一个问号。 属性名前面加上readonly关键字,表示这个属性是只读属性,不能修改。只读属性只能在对象初始化期间赋值,此后就不能修改该属性。 如果对象的属性非…

阅读全文
TS系列66328 阅读

5. TS函数

函数的类型声明,需要在声明函数时,给出参数的类型和返回值的类型。如果没有返回值,可以标注为void 返回值的类型通常可以不写,因为 TypeScript 自己会推断出来。 如果变量被赋值为一个函数,变量的类型有两种写法。 如果函数的某个参数可以省略,则在参数名后面加问号表示。 设置了默认值的参数,就是可选的。如果不传入该参数,它就会等于默认值。 可选参数与默认值不能同时使用。 参数解构 : res…

阅读全文
TS系列58630 阅读

4. TS中的数组

根本特征:所有成员的类型必须相同,但是成员数量是不确定的,可以是无限数量的成员,也可以是零成员。 需要只读数组的时候,只需要再类型声明前加上readonly: TypeScript 将readonly number\[]与number\[]视为两种不一样的类型,后者是前者的子类型。(因为只读数组没有pop()、push()之类会改变原数组的方法) 特殊的是:如果这样写就会报错:const arr:…

阅读全文
TS系列140428 阅读

3. 类型详解

Js类型:boolean string number object undefined null bigint symbol TypeScript 继承了 JavaScript 的类型设计,以上8种类型可以看作 TypeScript 的基本类型。复杂类型由它们组合而成。 和Java不同,js类型的名称都是小写字母,首字母大写的Number、String、Boolean等在 JavaScript 语…

阅读全文
TS系列178828 阅读

2. TS类型标注

就是为各种变量、方法参数和返回值等标注其数据类型 简单类型直接冒号 + 类型: function的标注为:参数后冒号 + 类型,返回值在括号后加冒号和类型: any 类型表示没有任何限制,该类型的变量可以赋予任意类型的值。相当于js原本的变量,可以赋任意数据类型的值。即TypeScript 不对其进行类型检查。应该尽量避免使用any类型,否则就失去了使用 TypeScript 的意义。 在类型推断…

阅读全文
TS系列100529 阅读

1. 了解Typescript

背景:前端工作已经有好几年了,ts也接触了不少,但一直是知其然不知其所以然。虽然知道它对于前端来说很重要,也有想过去了解,但是始终没有静下心系统的进行学习。最近环境不太好,所以计划利用这个周末的时间来系统性学习、查缺补漏。目标是完全弄懂概念以及在实战中的应用。 一开始打算使用视频来学习,但是感觉太慢了。说的比较基础,也难以找到合适我的视频。所以使用阮一峰老师的ts博客进行学习。本系列文章主要用于记…

阅读全文
建站相关94533 阅读

博客网站正式运营

断断续续的终于将这个博客网站开发好了。 做一个网站,这是很久以前就有的想法了。 最早应该是源于初中吧,那时候刚流行起智能手机,对于网站的访问体验比功能机强大了不知道多少(玩过3GQQ家园的应该都理解)。当时流行发QQ空间,初中毕业时在亲戚家里玩电脑,整天最喜欢的就是打开网页版的QQ空间进行布置。十块左右能开通一个月的黄钻,能用非常多的装饰去打造自己的个性空间、设置背景音乐等。那时候的我,觉得非常的…

阅读全文
技术相关#前端工程架构39911 阅读

免费获取ssl证书,轻松开启Https

在同事的介绍下知道了Let's Encrypt。免费获取ssl证书,将http变为https。 官网: [链接] (官网看不懂,还是AI好用,直接给我提纯了) 使用方式很简单: 1. 一个已绑定到服务器的域名(如 example.com) 2. 你的网站通过该域名能被访问(公网 IP、80/443 端口已开放) 3. 服务器上有 root 权限 4. 已安装好 Nginx 或 Apache (总结…

阅读全文
技术相关5819 阅读

发现了一个好用的编辑器

官网: Quill 用了一段时间的w-editer,说实话挺难用的。就想着换一个,不过问AI出来的都是一堆很知名很商业化的东西,不是会员都只能试用。会员价格还老高,我这种小网站根本无力承担。 今天在群里问了问,还真发现了一个叫Quill的富文本编辑器。免费,好用,好看,轻量。 有很多API,能够获取笔记字数,监听文本是否发生改动等。工具栏也很好配置。 还有很多功能没仔细研究,有空再集成进来。 官网…

阅读全文
思考感悟6495 阅读

关于信息茧房

以前对于信息茧房这个词是没有太大感触的,理解一些概念,但感受不深。 直到今天刷知乎,发现推荐的问题死活就是那几个。都是我很久以前就看过的问题,它还在不断的给我推荐。甚至一些问题我只是偶尔搜索了一下,根本不感兴趣,但也会周而复始的推荐。 我想退出登录之后浏览,结果发现不登录根本不能访问了。对于这么大的一个论坛网站,推荐的内容却让我重复看到想吐。这一刻我终于直观体会到了处于信息茧房中的感受。 不只是知…

阅读全文
建站相关44330 阅读

新域名

原来的yangliuyiyi.com用了一段时间了,感觉还不错,可惜有点长,今天随便逛逛域名商城,捡了个大漏。花了44块钱,买了个域名:ryurl.com 不仅短,还是.com域名。还含有url一词。原来我只想到了link,没想到url其实也不错,也同样合适做书签网站。 前面的ry两个字母也不错,能够寓意:如意、任意、日月等词汇。 比其他4杂5杂和一些完全找不出意义的字母组合好了不知道多少。 就这…

阅读全文
思考感悟128638 阅读

平衡开发心态

有时候对这些互联网的大厂真是又爱又恨,当我需要什么但没有的时候,感叹他们什么都有。当我做出了什么或有什么新奇想法时,又发现他们早就做了这些功能,又感叹他们连这些小项目都给做了,让我们这些小开发者汤都没得喝。不知道如何平衡这种心态。 我试着问了问ChatGPT,它给我的回答是这样的: 你的这种感受很真实,很多开发者都有类似的体会。大厂的确凭借资源、人才和数据优势,把很多事情做得又快又好,导致小开发者…

阅读全文
AI#大模型6797 阅读

简单部署deepseek

安装到本地文档: [链接] Ollama 配置: [链接] GraphRAG: [链接] 阿里云服务支持: [链接] 今天试着本地部署了一下deepseek的残疾版本,deepseek-r1-1.5b。 很简单,下载ollama之后使用ollama run deepseek-r1:1.5b就行了。 (缺点是本地安装了ollama死活无法下载模型,而使用docker启动之后就能飞速安装大模型了,还不…

阅读全文
代码技巧2925 阅读

伪类替代

在 Vue 中,如果需要覆盖子组件或第三方组件样式,可以使用 来突破 scoped 作用域限制。 等价于: 主要用于: 覆盖 UI 组件库样式(如 TDesign、Element Plus) 修改子组件内部样式 scoped 无法覆盖的第三方样式 当 无法生效或覆盖不成功时,可以使用“外层类 + global”的方式。 表示同一个元素同时拥有两个 class: 表示父子关系:

阅读全文