随笔分类 -  TypeScript

摘要:背景:提升TypeScript开发体验与团队协作效率 在现代化的 TypeScript 项目开发中,代码的类型安全和开发者体验是保障质量与效率的两大支柱。然而,默认的编辑器设置往往需要我们频繁地通过 悬停 来查看类型信息,或在 问题面板 中寻找错误提示,这种上下文切换打断了编码的心流,降低了代码的直 阅读全文
posted @ 2026-02-13 10:02 HuangBingQuan 阅读(17) 评论(0) 推荐(0)
摘要:什么是泛型 T 是一个类型变量,代表"某种类型" 举个例子 loadMore: (page: number) => Promise<T[]>; 相当于说:这个函数返回一个Promise,Promise解析的结果是T类型的数组 实际使用时的具体化 // 当 T = Product 时: loadMor 阅读全文
posted @ 2025-09-30 23:59 HuangBingQuan 阅读(31) 评论(0) 推荐(0)
摘要:这是一种 TypeScript 的高级类型技巧,用于从值推导出类型,实现类型和值的完美同步。 基本语法 /** 常量数组声明 声明了一个名为 eventNames 的常量,其值是一个字符串数组。 as const 这是 TypeScript 的 字面量常量断言 没有 as const 时,TypeS 阅读全文
posted @ 2025-09-20 22:45 HuangBingQuan 阅读(48) 评论(0) 推荐(0)
摘要:TypeScript 中的类型拓宽(Type Widening)是 TypeScript 编译器在推断变量类型时的一种行为。 它通常发生在使用 let 或 var 声明变量时,TypeScript 会将变量的类型推断为一个更宽泛的类型,而不是具体的字面量类型。这种行为是为了确保变量在后续可以被重新赋 阅读全文
posted @ 2025-03-04 13:37 HuangBingQuan 阅读(44) 评论(0) 推荐(0)
摘要:安装 TypeScript(TS)是一种编译时的静态类型语言,是一种强类型语言。 静态类型: 在TypeScript中,变量和函数的类型是在编写代码时指定的,而不是在运行时确定的。这有助于捕捉类型错误,并提供更好的代码自动补全、导航和重构支持。 编译时: 浏览器和nodejs并不能直接识别TS代码, 阅读全文
posted @ 2024-12-31 14:54 HuangBingQuan 阅读(109) 评论(0) 推荐(0)
摘要:使用第三库简化流程 ts-node: 将ts代码在内存中完成编译,同时完成运行 安装: npm i -g ts-node 运行: ts-node src/index.ts nodemon: 检测文件变化 安装: npm i -g nodemon 运行: nodemon --exec ts-node 阅读全文
posted @ 2024-12-31 14:44 HuangBingQuan 阅读(30) 评论(0) 推荐(0)
摘要:any 大法 ✨ 前期开发代码量少,快速简单。 🚨 由于未定义 interface 导致整个项目充斥着大量 any 类型,项目沦为 AnyScript。 🚨 无法获得健全的 ts 语法检测功能,弱化了使用 ts 的作用。 🚨 后期维护成本高,后端修改字段,ts 语法无法检测。 interfac 阅读全文
posted @ 2023-10-19 10:48 HuangBingQuan 阅读(99) 评论(0) 推荐(0)
摘要:泛型 有时,书写某个函数时,会丢失一些类型信息(多个位置的类型应该保持一致或有关联的信息) 泛型:是指附属于函数、类、接口、类型别名之上的类型 泛型相当于是一个类型变量,在定义时,无法预先知道具体的类型,可以用该变量来代替,只有到调用时,才能确定它的类型 很多时候,TS会智能的根据传递的参数,推导出 阅读全文
posted @ 2023-10-18 17:18 HuangBingQuan 阅读(48) 评论(0) 推荐(0)
摘要:# 函数的相关约束 函数重载:在函数实现之前,对函数调用的多种情况进行声明 可选参数:可以在某些参数名后加上问号,表示该参数可以不用传递。可选参数必须在参数列表的末尾。 ``` # 举个栗子-应用场景 /** * 相乘的结果 * @param a * @param b */ function com 阅读全文
posted @ 2023-06-21 17:48 HuangBingQuan 阅读(44) 评论(0) 推荐(0)
摘要:对已知的一些类型定义名称 ``` type 类型名 = ... ``` ``` # 举个例子 type Gender = "男" | "女"; type User = { name: string, age: number, gender: Gender } let u: User; u = { n 阅读全文
posted @ 2023-06-21 16:39 HuangBingQuan 阅读(34) 评论(0) 推荐(0)
摘要:# 如何进行类型约束 仅需要在 变量、函数的参数、函数的返回值位置加上```:类型``` ts在很多场景中可以完成类型推导 any: 表示任意类型,对该类型,ts不进行类型检查 # 基本类型 - number:数字 - string:字符串 - boolean:布尔 - 数组 - object: 对 阅读全文
posted @ 2023-06-21 16:11 HuangBingQuan 阅读(66) 评论(0) 推荐(0)
摘要:# Hello TypeScript # 为什么要学习TypeScript - 就业 或 获得更大的竞争优势 - 获得更好的开发体验 - 解决JS中一些难以处理问题 # JS开发中的问题 - 使用了不存在的变量、函数或成员 - 把一个不确定的类型当作一个确定的类型处理 - 在使用null或undef 阅读全文
posted @ 2023-06-12 17:34 HuangBingQuan 阅读(38) 评论(0) 推荐(0)
摘要:Hello TypeScript TypeScript是JS的超级,是一个可选的、静态的类型系统 静态的(类型检查发生的时间,在编译的时候,而非运行时) 类型系统(对代码中所有的标识符(变量、函数、参数、返回值)进行类型检查) 在node中搭建TypeScript环境 安装typescript:ya 阅读全文
posted @ 2023-02-26 22:13 HuangBingQuan 阅读(49) 评论(0) 推荐(0)