TypeScript
TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。
艾光远
大前端炼金术士 | 将代码淬炼成用户指尖流淌的光!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
TypeORM 浅析
TypeORM是一个基于TypeScript/JavaScript的ORM框架,支持PostgreSQL、MySQL等多种数据库。它通过装饰器实现实体映射,简化数据库操作。文章介绍了TypeORM的安装配置、核心功能(实体定义、Repository操作、条件查询)以及高级特性(关系映射、乐观锁、事务)。通过代码示例展示了如何定义实体类、执行CRUD操作、处理一对多关系和使用事务管理。TypeORM提供面向对象的数据操作方式,适合构建复杂的数据驱动应用。原创 2025-09-21 22:09:22 · 584 阅读 · 0 评论 -
如何在大型项目中使用 TypeORM 进行数据库管理
TypeORM作为TypeScript ORM框架能提升开发效率,但在大型项目中需注意:1)实体定义应与业务逻辑分离,便于模块化管理;2)合理使用懒加载和预加载优化查询性能;3)利用QueryBuilder控制复杂查询;4)通过迁移管理数据库变更;5)警惕N+1查询问题,采用批量操作提升性能。需结合性能监控工具持续优化。原创 2025-09-18 17:34:51 · 348 阅读 · 0 评论 -
Typescript 源码核心流程
TypeScript编译器的核心功能由多个文件协同完成。tsc.ts作为入口文件,负责解析命令行参数并启动编译过程。commandLineParser.ts处理tsconfig.json配置文件的解析,生成编译器选项。program.ts创建程序实例,解析输入文件并生成源文件对象。scanner.ts进行词法分析,将源代码转换为词法单元。parser.ts执行语法分析,生成抽象语法树(AST)。checker.ts负责类型检查,遍历AST并验证类型。原创 2025-05-11 18:39:51 · 817 阅读 · 0 评论 -
TypeScript 装饰器高级用法详解
TypeScript装饰器提供了强大的元编程能力,支持多种高级模式。首先,装饰器组合与执行顺序遵循特定规则,装饰器工厂从上到下执行,装饰器函数从下到上执行。其次,结合reflect-metadata库可以实现元数据反射,用于参数验证等场景。此外,通过方法拦截器可以实现AOP(面向切面编程),支持同步和异步方法拦截。依赖注入系统可以通过装饰器简化实现,而自定义装饰器工厂则支持带参数的装饰器和条件装饰器。装饰器还可以与泛型、组合模式、混入模式结合,扩展类功能。在React中,装饰器可以用于高阶组件,提升组件功能原创 2025-05-11 17:33:43 · 425 阅读 · 0 评论 -
TypeScript 装饰器详解
TypeScript中的装饰器是一种强大的元编程工具,允许开发者以声明式的方式修改类、方法、属性或参数的行为。装饰器通过@expression语法应用,其中expression是一个在运行时调用的函数,接收被装饰目标的元数据。装饰器类型包括类装饰器、方法装饰器、访问器装饰器、属性装饰器和参数装饰器,每种类型都有其特定的应用场景。装饰器的执行顺序遵循一定的规则,从参数装饰器到类装饰器依次应用。实际应用中,装饰器可用于日志记录、数据验证、依赖注入等多种功能。TypeScript与reflect-metadata原创 2025-05-11 16:40:51 · 529 阅读 · 0 评论 -
TypeScript 类型保护详解
类型保护是TypeScript中一种重要的机制,用于在特定代码块中更精确地确定变量类型,从而提高代码的类型安全性和可维护性。它允许开发者在条件分支中缩小变量的类型范围,进而获得更准确的类型推断。类型保护的主要方式包括:使用typeof操作符进行基本类型的区分,instanceof用于检查值是否为某个类的实例,in操作符检查对象是否具有特定属性,自定义类型保护(类型谓词)通过返回类型谓词的函数来创建,可辨识联合通过共同的字面量属性来区分类型,以及非空断言使用!后缀表示值不为null或undefined。最佳实原创 2025-05-11 14:59:12 · 535 阅读 · 0 评论 -
TypeScript 中的泛型工具详解
TypeScript提供了多种泛型工具类型,用于灵活操作和转换类型。基础工具类型包括Partial(使属性可选)、Required(使属性必选)、Readonly(使属性只读)、Record(构造特定属性类型)、Pick(选取部分属性)和Omit(排除部分属性)。条件类型工具如Exclude(排除特定类型)、Extract(提取特定类型)和NonNullable(排除null和undefined)。函数相关工具如ReturnType(获取返回值类型)、Parameters(获取参数类型)、Construct原创 2025-05-11 13:56:46 · 723 阅读 · 0 评论 -
TypeScript 环境搭建
TypeScript环境搭建主要有两种方式:基于TypeScript CLI(tsc)和基于Babel。使用tsc时,首先安装TypeScript并创建tsconfig.json文件配置编译选项,然后通过npm脚本运行tsc命令编译TypeScript代码。基于Babel的方式则需要安装Babel及相关预设,创建.babelrc配置文件,并通过Babel编译TypeScript代码。两种方法各有优势,tsc更直接且官方支持,Babel则更灵活,适合与现有Babel工具链集成。选择哪种方式取决于项目需求和开发原创 2025-05-11 12:20:45 · 443 阅读 · 0 评论 -
TypeScript 中的 infer 关键字用途
infer 是 TypeScript 中的高级类型关键字,主要用于条件类型中推断类型。它允许我们在条件类型的 extends 子句中声明一个类型变量,然后在该条件类型的 true 分支中使用这个推断出的类型。infer 是 TypeScript 类型编程中非常强大的工具,它使得类型操作更加灵活和强大,特别是在创建复杂工具类型时非常有用。原创 2025-04-07 22:28:02 · 522 阅读 · 0 评论 -
TypeScript 中interface和type的区别?
在 TypeScript 中,interface 和 type 都用于定义自定义类型,但它们有一些关键区别,两者使用建议1. 优先使用 interface,除非需要 type 的特定功能;2. 需要联合类型、元组或映射类型时使用 type;3. 需要扩展第三方类型或需要声明合并时使用 interface;4. 在库或公共 API 定义中使用 interface,因为它更易扩展;两者在大多数情况下可以互换,选择主要取决于具体需求和团队约定。原创 2025-04-06 23:21:31 · 691 阅读 · 0 评论 -
TypeScript 中tsconfig.json配置
TypeScript 使用 tsconfig.json 文件作为其配置文件,当一个目录中存在 tsconfig.json 文件,则认为该目录为 TypeScript 项目的根目录。基础字段 files - 设置要编译的文件的名称;['./src/main.tsx'];include - 设置需要进行编译的文件,支持路径模式匹配;['src'];exclude - 设置无需进行编译的文件,支持路径模式匹配;['node_modules'];compilerOptions - 编译配置选项原创 2024-08-15 23:48:52 · 559 阅读 · 0 评论 -
TypeScript 中类型的常见操作
1. 获取Key的类型,JS当中获取key的语法:Object.keys(),TS当中获取key的类型:keyof2.获取对象类型3.遍历枚举类型原创 2024-08-15 00:32:52 · 542 阅读 · 0 评论 -
TypeScript 中的泛型
在编译期间不确定变量的类型,在调用时,由开发者指定具体的类型。定义的时候,无法确定类型,只有在调用的时候,才能确定参数类型。Pick 就是挑选的意思,可以从已有的类型中,挑选一些类型进行使用。原创 2024-08-14 12:24:46 · 283 阅读 · 0 评论 -
TypeScript 中各种数据类型的定义
1. 接口通过interface定义,type是用来定义类型别名;2. 接口可以重复定义,type不可以;3. 接口可以继承,type不可以继承,但是可以使用联合类型和交叉类型来模拟继承;原创 2024-08-12 00:34:20 · 412 阅读 · 0 评论 -
TypeScript 中装饰器的执行顺序
在TypeScript中,装饰器的执行顺序为:首先执行属性装饰器,然后执行方法装饰器,其次是方法参数装饰器,最后是类装饰器。如果同一个类型的装饰器有多个,总是先执行后面的装饰器。// 类装饰器1function logClass1(params:string){ return function(target:any){ console.log('类装饰器1') ......原创 2020-01-12 14:43:24 · 1829 阅读 · 0 评论 -
TypeScript 中的装饰器
装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,属性或参数上,可以修改类的行为。通俗的讲装饰器就是一个方法,可以注入到类、方法、属性参数上来扩展它们的功能。装饰器的写法有普通装饰器(无法传参)和装饰器工厂(可传参)两种。常见的装饰器有:类装饰器、属性装饰器、方法装饰器、参数装饰器。1. 类装饰器// 装饰器function logClass(params:any){ ......原创 2020-01-12 14:09:59 · 720 阅读 · 0 评论 -
TypeScript 中的命名空间
在开发大型项目时,在同一个模块内代码太多可能造成命名冲突,此时就需要使用TypeScript提供的命名空间的功能,命名空间主要用于组织代码,避免命名冲突。1. 给要导出的代码段添加命名空间名,并将整个命名空间添加导出,同时,在命名空间内的方法也要添加导出。// 命名空间Aexport namespace A{ interface Animal { name: s......原创 2020-01-11 01:40:04 · 1018 阅读 · 0 评论 -
TypeScript 使用泛型类模块化封装DB库
1. 封装DB数据库// 定义数据库的泛型,便于操作多个数据库interface DBI<T>{ add(info:T):boolean; update(info:T,id:number):boolean; delete(id:number):boolean; get(id:number):any[];}// 定义一个操作MYSQL数据库.........原创 2020-01-11 00:30:40 · 601 阅读 · 0 评论 -
TypeScript 中的泛型
1. 泛型的定义软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性,组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。在像C#和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据,这样用户就可以以自己的数据类型来使用组件。在TypeScript中,我们可以使用 any 类型来......原创 2020-01-09 00:16:57 · 641 阅读 · 0 评论 -
TypeScript 中接口的定义
在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到了一种限制和规范的作用,接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类里必须提供某些方法,提供方法的这些类就可以满足实际需要。TypeScript中的接口类似于Java,同时还增加了更加灵活的接口类型,包括属性、函数、可索引和类等。......原创 2020-01-05 22:33:06 · 1026 阅读 · 0 评论 -
TypeScript 中的静态属性、静态方法、多态、抽象类
1. 静态属性与静态方法。在TypeScript里通过 static 关键字来修饰静态属性与静态方法。静态属性与静态方法不需要实例化就可以访问,访问时直接通过类名来调用,静态方法不能访问当前类里的属性,只能访问当前类里的静态属性。class Person{ public name:String; constructor(name:String){ this......原创 2020-01-04 22:13:39 · 1371 阅读 · 0 评论 -
TypeScript 中的类与继承
TypeSctipt中类与继承的方法与ES6中基本一致,写法如下:1. 定义类class Person{ name:String; constructor(name:String){ this.name = name; } getName():String{ return this.name; } setNa...原创 2020-01-04 20:43:22 · 734 阅读 · 0 评论 -
TypeScript 中的函数的定义
1.函数声明法。function run():string{ return 'abc'};2.匿名函数法。var func = function ():number{ return 123};func();3.定义方法传参,参数与方法名都要声明类型。function getInfo(name:String,age:number):string{......原创 2020-01-01 23:11:47 · 529 阅读 · 0 评论 -
TypeScript 中的数据类型
Typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,一个标识符一旦定义了类型,后续便不能再修改,主要有以下几种数据类型。1. 布尔类型(boolean)var flag:boolean=true;// flag=123; // 错误flag=false; // 正确2. 数字类型(number)var num:n......原创 2019-12-30 23:52:28 · 393 阅读 · 0 评论 -
TypeScript 安装与编译
TypeScript 是由微软开发的一款开源的编程语言,TypeScript 是 Javascript 的超级,遵循最新的 ES6、Es5 规范,扩展了 JavaScript 的语法,TypeScript 更像后端 java、C#这样的面向对象语言可以让 JS开发大型企业项目。谷歌也在大力支持 Typescript 的推广,谷歌的 Angular2.x+就是基于 Typescript 语法......原创 2019-12-28 20:16:29 · 530 阅读 · 0 评论
分享