- 博客(185)
- 收藏
- 关注
原创 TypeScript 完全指南:从基础到高级类型系统(十六)「类型声明文件d.ts 文件」
在TypeScript的开发领域中,类型声明文件扮演着举足轻重的角色🎯。当我们使用单独的模块时,为了让模块的使用者能够清晰了解其外部接口,同时也便于编译器对使用方法进行正确性检查,通常会配套提供一个专门的类型声明文件📄。
2025-04-07 01:06:56
260
原创 TypeScript 完全指南:从基础到高级类型系统(十五)「配置文件tsconfig.json」
在TypeScript项目的开发旅程中,堪称一位至关重要的“领航员”🧭。它作为TypeScript项目的核心配置文件,稳稳地坐镇于项目的根目录。从某种意义上说,只要TypeScript“看”到某个目录中存在,便会毫不犹豫地将该目录认定为项目的根目录,犹如航海者找到了明确的航线起点。倘若你的项目源码是JavaScript,却渴望借助TypeScript的强大功能来进行处理,此时配置文件的名字会摇身一变成为。别被名字的变化所迷惑,实际上它的写法与如出一辙,就像同一款工具的不同“皮肤”,本质功能是一致的。
2025-04-07 00:56:03
420
原创 TypeScript 完全指南:从基础到高级类型系统(十四)「类型断言」
在TypeScript的编程世界里,类型系统犹如一位严谨的守护者,时刻确保代码的类型安全。然而,对于那些未进行明确类型声明的值,TypeScript会施展它的类型推断魔法。但现实往往并非总是如我们所愿,它推断出的类型有时并非开发者心中所期望的。😕在上述示例中,代码的最后一行出现了报错情况。这背后的原因是什么呢🧐?原来是TypeScript将变量foo推断为string类型,而变量bar的类型被定义为。这里需要注意的是,string类型实际上是类型的父类型。
2025-04-07 00:38:21
415
原创 TypeScript 完全指南:从基础到高级类型系统(十三)「装饰器」
set?init?} | void;accessor 装饰器的value参数是一个包含get()方法和set()方法的对象。这个装饰器可以选择不返回值,也可以返回一个新的对象,用于取代原来的get()方法和set()方法。此外,装饰器返回的对象还可以包含一个init()方法,用于改变私有属性的初始值。
2025-04-07 00:31:17
563
原创 TypeScript 完全指南:从基础到高级类型系统(十二)「symbol (符号)」
Symbol可以用来定义元数据或者钩子,这些元数据或者钩子可以被其他代码使用,而不会与对象的其他属性名冲突。// 输出: This is a hook在这个例子中,myHook作为MyClass的一个属性,用来定义一个钩子函数。这个钩子函数可以被其他代码调用,而不会与MyClass的其他属性名冲突。在 TypeScript 中使用symbol类型作为对象的属性名,可以有效避免命名冲突,同时利用可以更精确地表示特定的Symbol值。结合方法,还能创建全局共享的Symbol。这些特性使得。
2025-04-07 00:07:53
252
原创 TypeScript 完全指南:从基础到高级类型系统(十一)「元组」
在 TypeScript 的世界里,元组(tuple)是一种独具特色的数据类型,而 JavaScript 并未对其进行单独区分。元组可以看作是成员类型能够自由设定的数组,也就是说,数组中各个成员的类型可以各不相同😎。
2025-04-06 23:58:57
629
原创 TypeScript 完全指南:从基础到高级类型系统(十)「对象」
对象中的方法在TypeScript中通过函数类型来描述。x: number;y: number;// 或者写成} = {x: 1,y: 1,在上述示例中,对象obj拥有一个名为add的方法,我们明确地定义了它的参数类型和返回值类型。在实际开发中,我们可能会遇到对象属性众多,逐个声明类型极为繁琐的情况,或者无法预先知晓对象会包含多少属性(如外部API返回的对象)。此时,TypeScript的属性名表达式写法——“属性名的索引类型”便派上了用场🧩。
2025-04-06 23:53:48
400
原创 TypeScript 完全指南:从基础到高级类型系统(九)「函数」
函数的类型声明,需要在声明函数时,给出参数的类型和返回值的类型。txt:string):void {上面示例中,函数hello()在声明时,需要给出参数txt的类型(string),以及返回值的类型(void),后者写在参数列表的圆括号后面。void类型表示没有返回值,详见后文。如果不指定参数类型(比如上例不写txt的类型),TypeScript 就会推断参数类型,如果缺乏足够信息,就会推断该参数的类型为any。返回值的类型通常可以不写,因为 TypeScript 自己会推断出来。
2025-04-04 01:26:04
750
原创 TypeScript 完全指南:从基础到高级类型系统(八)「类」
在面向对象编程的世界里,类(class)就像是构建大厦的基石🧱,它将属性和方法封装在一起,为代码的组织和复用提供了强大的支持。而TypeScript作为JavaScript的超集,对类的特性给予了全面且细致的支持。
2025-04-04 00:53:47
848
原创 TypeScript 完全指南:从基础到高级类型系统(七)「模块」
在文件里,我们可以手动指定脚本模块的路径。baseUrl字段可以指定脚本模块的基准目录:上面的例子里,baseUrl是,表示基准目录就是所在的目录。📍paths字段可以指定非相对路径的模块与实际脚本的映射:"paths": {这样,加载jquery模块时,实际加载的脚本就是,它的位置是根据baseUrl字段计算出来的。注意,jquery属性的值是个数组,可以指定多个路径,第一个路径不存在就加载第二个,以此类推。
2025-04-04 00:27:52
832
原创 TypeScript 完全指南:从基础到高级类型系统(六)「命名空间(不推荐使用)」
在TypeScript的编程世界里,命名空间(Namespace)是一种用于组织相关代码的有效方式。它就像是一个容器🧳,把相关的变量、函数、类和接口等代码元素整合在一起,避免命名冲突,提高代码的可维护性和可读性。不过,需要注意的是,随着ES模块的出现,官方已经不推荐使用命名空间了,但了解它仍然有助于我们更好地理解TypeScript的发展历程和代码结构。
2025-04-04 00:19:20
713
原创 TypeScript 完全指南:从基础到高级类型系统(五)「类型映射」
在TypeScript的广阔天地里,类型映射是一项极具价值的特性,它就像一把神奇的钥匙,能按照特定规则,将一种类型巧妙地转换为另一种类型,尤其在处理对象类型时,其优势展露无遗。而借助类型映射,从类型。这里的“新类型”通常是一个模板字符串,在这个模板字符串里,我们可以对原始键名进行各种各样的操作。这样一来,就成功过滤掉了不符合条件的属性,只保留了属性值为字符串的属性。可看作是仅有一个成员的联合类型,最终得到了仅有这一个属性的对象类型。的映射,但在映射过程中巧妙地修改了属性名,在原始属性名后面加上了字符串。
2025-04-04 00:12:53
655
原创 TypeScript 完全指南:从基础到高级类型系统(四)「类型工具」
TypeScript的这些类型工具功能强大且实用,熟练掌握它们,能让我们在开发过程中如鱼得水,写出更健壮、更易维护的代码。无论是处理复杂的类型关系,还是对字符串进行灵活操作,这些工具都能提供有力支持。希望大家在日常开发中多多实践,充分发挥TypeScript类型工具的优势!💪以上就是本次关于TypeScript类型工具的全部内容啦,要是你在使用过程中有什么心得或者遇到的问题,欢迎在评论区留言分享呀!👇。
2025-04-04 00:05:01
481
原创 TypeScript 完全指南:从基础到高级类型系统(三)「类型缩小」
对于不同对象之间的区分,还可以人为地为每一类对象设置一个特征属性。break;e;break;通过设置type这个特征属性,在函数中,就能根据type的值轻松地缩小e的类型,方便后续的处理。is运算符返回一个布尔值,用于判断左侧的值是否属于右侧的类型。通过自定义类型判断函数,能更灵活地进行类型缩小。el;el;在这个例子中,函数通过判断el是否存在value属性,来确定el是否为类型。在函数中,利用这个判断结果,对el进行不同的处理。return x!Treturn x!
2025-04-03 23:58:35
605
原创 TypeScript 完全指南:从基础到高级类型系统(二)「从特殊类型到运算符的全面解析」
在 TypeScript 的世界里,类型系统是其核心魅力所在,它不仅增强了代码的可读性和可维护性,还能在编译阶段捕获许多潜在的错误。本文将深入探讨 TypeScript 中的特殊类型(anyunknownnever)以及各种强大的类型运算符,让你对 TypeScript 的类型系统有更全面的了解。
2025-04-03 23:50:18
818
原创 TypeScript 完全指南:从基础到高级类型系统(一)
TypeScript(简称 TS)是微软公司精心打造的一门编程语言,它构建于 JavaScript(简称 JS)的基础之上。其核心目标并非创造一门全新的语言,而是为 JavaScript 注入强大的功能,让它更契合多人协作的企业级项目。
2025-04-03 22:08:44
598
原创 学习 Node.js 读书笔记
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让 JavaScript 能够脱离浏览器环境,在服务器端运行。这意味着我们可以使用熟悉的 JavaScript 语言来开发后端应用,实现前后端统一语言编程,极大提高了开发效率。
2025-04-03 11:14:47
809
原创 前端技术:从基础到前沿的全面解析[特殊字符]
前端技术持续演进,从基础的 HTML、CSS、JavaScript 构建网页基石,到各类框架、工具助力高效开发,性能优化与安全防护保障用户体验与数据安全,再到面向未来的诸多趋势拓展边界、提升效率。作为前端开发者,需紧跟技术浪潮🌊,不断学习新知识、掌握新技能,将前沿技术融入项目实践,方能在这充满活力的领域立足,创造出更加卓越、易用、创新的 Web 应用,连接人与数字世界的无限可能🌈。
2025-04-03 11:01:22
675
原创 JavaScript 网页设计实战案例全解析
本案例将构建一个交互式的电影推荐网页。此项目综合运用了 HTML、CSS 和 JavaScript,旨在展示如何通过 JavaScript 实现网页的动态交互和数据处理。
2025-03-22 23:11:03
570
原创 Vue2与Vue3组件开发全维度对比实战指南
Options API 的优点易于学习和理解,对于初学者来说,清晰地将不同功能划分到不同选项中,降低了学习成本。代码结构清晰,每个选项的作用明确,便于维护和查找。Options API 的缺点当组件变得复杂时,代码会变得冗长,同一个逻辑关注点的代码可能分散在不同的选项中,导致难以理解和维护。代码复用性较差,难以提取和复用逻辑。Composition API 的优点逻辑复用性强,可以将相关的逻辑封装成函数,在不同的组件中复用。
2025-03-22 22:55:19
755
原创 Render函数
title: “9.Render函数”date: 2022-08-06categories:tags:::: tip与 最大的区别就在于 使用了 来 ,提升擅染性能。虽然前面章节我们的组件模板都是写在 选项里的,但是在 编译时,都会解析为 本章我们就来探索 用于实现 函数用法,在介绍 前,在介绍 前,我们先来看看什么是 .:::基础篇的章节内容基本涵盖了 最常用的功能。如果不需要 和 ,那么你已经可以利用这些内容做一些中小型项目了.从这章开始,介绍的内容会 ,逐步向 迈进,使用到的知识点也 ,比如
2025-03-15 23:51:12
615
原创 VSCode配置优化全攻略:打造你的专属开发神器
基础配置:完成主题、快捷键、插件的初步设置项目定制:针对不同项目类型配置专属settings性能优化:定期清理缓存,禁用不必要插件持续学习:关注VSCode官方更新和社区技巧。
2025-03-11 02:15:53
390
原创 2025年JavaScript性能优化实战指南:从青铜到王者的蜕变之路
基线测量:使用Lighthouse生成初始性能报告优先级排序:基于RUM数据定位关键优化点实验验证:采用A/B测试评估优化效果持续监控:建立性能监控看板与报警机制最后划重点:性能优化没有银弹,需要结合业务场景选择最优方案。建议每季度进行性能审计,确保应用始终保持最佳运行状态。
2025-03-11 01:56:12
387
原创 Vue.js自定义指令
title: “8. 自定义指令”date: 2022-08-01showSponsor: truecategories:tags:::: tip在第5章里我们已经介绍过了许多,比如、等,这些丰富的能满足我们的绝大部分业务需求,不过在需要一些特殊功能时,我们仍然希望对进行底层的操作,这时就要用到自定义指令:::自定义指令的注册方法和组件很像,也分和,比如,用于在 、元素初始化时自动获得焦点,两种写法分别是:写法与组件基本类似,只是方法名由改为了。上例只是,还没有实现具体功能,下面具体介绍。自定义指令的
2025-03-11 01:39:49
756
原创 Vue.js组件详解
title: “7. 组件详解”date: 2022-06-09categories:tags:::: tip是最核心的功能,也是整个框架设计最精彩的地方,当然也是最难掌握的,本章将带领你由浅入深地学习组件的全部内容,并通过几个实战项目熟练使用 Vue 组件。:::在正式介绍组件前,我们先来看一个简单的场景。如图所示:图中是个很常见的聊天界面,虽然有点简陋,但有有些标准的控件,比如、、等,你可能要问了,这有什么难的,不就是几个、吗?,好,那现在需求升级了,这几个控件还有别的地方要用到。没问题,复制粘贴呗
2025-03-11 01:39:16
843
原创 Vue.js内置指令
title: “5. 内置指令”date: 2022-04-09categories:tags:回顾下第2.2节指令与事件,我们己经介绍过的概念了,的指令是带有特殊前缀的特性,它绑定一个表达式,并将一些特性应用到上。其实我们已经用到过很多,比如、,还有的。本章将继续介绍中更多是一个不需要表达式的指令,它会在从绑定的元素上移除,经常和的配合使用这时虽然己经加了指令,但其实并没有起到任何作用,当、,在页面上会显示字样,直到、,才会被替换,,只要加一句就可以解决这个问题在一般情况下,是一个,对于简单的项目很实用
2025-03-11 01:36:11
865
原创 Vue.js计算属性
通过上一章的介绍,我们己经可以搭建出一个简单的Vue应用,在模板中双向绑定一些数据或表达式了。但是表达式如果过长或逻辑更为复杂时,就会变得雕肿甚至难以阅读和维护。
2025-03-11 01:34:16
219
原创 Vue.js实战-前言
这本书来自同名书《Vue.js实战》,作者:梁瓢, 网名:Aresn,基于Vuejs的开UI组件库 iView 的作者。目前在大数据公司 Talking Data责可视化基础架构。创办了程序员社区 TalkingCode写出这本书的目的是纪律自己读书进度与读书的笔记,个人觉得,与其边看边敲,不如边看边思考做笔记,所以从放在博客里平日没事可以翻翻看,不至于天天带着书跑之前我也写过相关的文章,类似于笔记,你可以通过这里进行了解传送门。
2025-03-11 01:30:38
814
原创 一小时读完《Vue.js 设计与实现》
hello,各位小伙伴,大家好。我是Forever丿顾北。在当前这个时间段下,关于vue 3源码的书籍,主要有两本。第一本就是,咱们本次要讲的《Vue.js 设计与实现》。第二本是,《vue.js 技术内幕》,作者是黄轶。正巧,两本书我都买来了。这两本书,虽然都是讲解vue 3源码的,但是在讲解的方式上,有非常大的区别。首先是 《Vue.js 设计与实现》:它不同于市场上纯粹的 “源码分析” 类的书籍。而是从高层的设计角度,探讨框架需要关注的问题(-尤雨溪序),以。
2025-03-11 01:13:52
596
原创 前端项目自动化版本控制与构建脚本实践
前端项目版本控制脚本,为要搞个这个,因为本人嫌麻烦,每一次的更新都要给我的领导细说那里做了修改,同时每一次的commit都得写一串串,还有日期是真的麻烦,所以想出了这个,只需维护某个文件就可以做到本地,线上,git日志同步版本,时间,很更新公告以下方法只适用于windows 系统, IOS大致相同适用于前端任何项目, 如:vue,react,vite…
2025-03-11 01:06:20
240
原创 JavaScript个人总结-前言
我写这本教程,主要原因是自己需要。刚工作到现在,已有几个年头了,所积累的经验也有一点了,所以花了点时间将自己之前学的笔记整理了一下放在这里供大家参考,可能顺序有错乱的地方,大家可以根据自己的需要进行浏览编程时,往往需要查阅资料,确定准确用法。理想的 JavaScript 参考书,应该简明易懂,一目了然,告诉我有哪些注意点,提供代码范例。如果涉及重要概念,还应该适当讲解。可是大多数时候,现实都不是如此。找到的资料冗长难懂,抓不住重点,有时还很陈旧,跟不上语言标准和浏览器的快速发展,且大多数是英文资料。
2025-03-10 23:57:14
220
原创 JavaScript个人总结-DOM-Text节点和DocumentFragment 节点
title: “JavaScript个人总结-DOM-Text节点和DocumentFragment 节点”
2025-03-10 23:56:11
825
原创 JavaScript个人总结-DOM-ParentNode和ChildNode接口
title: “JavaScript个人总结-DOM-ParentNode和ChildNode接口”
2025-03-10 23:55:28
634
原创 JavaScript个人总结-DOM-NodeList和HTMLCollection接口
NodeList实例是一个类似数组的对象,它的成员是节点对象。通过以下方法可以得到NodeList实例。等节点搜索方法NodeList实例很像数组,可以使用length属性和forEach方法。但是,它不是数组,不能使用pop或push之类数组特有的方法。上面代码中,NodeList 实例children不是数组,但是具有length属性和forEach方法。如果NodeList实例要使用数组方法,可以将其转为真正的数组。除了使用forEach方法遍历 NodeList 实例,还可以使用for。
2025-03-10 23:54:51
611
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人