摘要: 在 TypeScript(以及 JavaScript)中,闭包描述了函数能够访问其声明时所在作用域的变量,即使该函数在其声明的作用域之外被调用的现象。 定义:闭包是指一个函数能够记住并访问其词法作用域(lexical scope)中的变量,即使这个函数是在其词法作用域之外执行。 闭包的核心原理 作用 阅读全文
posted @ 2025-09-16 09:11 Seamless 阅读(22) 评论(0) 推荐(0)
摘要: Typescript中的strictPropertyInitialization的作用是什么? Typescript中的strictPropertyInitialization 的核心作用是在编译阶段确保类的所有实例属性都有明确的初始值 其工作原理如下: 编译时检查逻辑TypeScript 编译器会跟踪类的属性初始化路径: 检查属性是否在声明时被赋值(含默认值)。 检查属性是否在构造函数的所有 阅读全文
posted @ 2025-09-14 17:01 Seamless 阅读(17) 评论(0) 推荐(0)
摘要: TypeScript 中的 any 类型本质上是类型系统的 "开关",其核心原理是通过关闭类型检查机制,允许变量以动态类型的方式运作,类似于纯 JavaScript 的行为。 底层原理分析: 类型检查的 "逃生舱" TypeScript 编译器在遇到 any 类型时,会完全跳过对该变量的类型验证 无 阅读全文
posted @ 2025-09-14 16:26 Seamless 阅读(13) 评论(0) 推荐(0)
摘要: TypeScript 中的 "类型"(Type)是对值的结构和行为的抽象描述。它不直接参与运行时,而是在编译阶段用于约束值的形态,确保代码符合预期的契约。 1.核心作用:定义 "允许的值" 的范围和操作规则 2.与 JavaScript 的关系:TS 的类型系统是对 JS 值的补充描述,所有 JS 阅读全文
posted @ 2025-09-13 09:11 Seamless 阅读(40) 评论(0) 推荐(0)
摘要: 在 TypeScript 中,泛型约束(Generic Constraints)用于限制泛型可以接受的类型范围,确保泛型参数不是只能接受任意类型,而是只能接受满足特定条件的类型。这既保留了泛型的灵活性,又增强了类型安全性。 为什么需要泛型约束? 默认情况下,泛型可以是任何类型,但有时你需要访问类型的 阅读全文
posted @ 2025-09-12 22:53 Seamless 阅读(33) 评论(0) 推荐(0)
摘要: 可以把泛型想象成 "类型的变量": 1.定义时,用<T>声明一个类型变量(T 是约定的名称,也可以用其他字母) 2.使用时,指定具体类型,如identity<string>("hello") 3.TypeScript 通常能自动推断类型,所以也可以简写为identity("hello") 泛型的应用 阅读全文
posted @ 2025-09-12 22:42 Seamless 阅读(19) 评论(0) 推荐(0)
摘要: 在 TypeScript 中,Indexed Access Types(索引访问类型)是一种通过索引来获取其他类型中特定属性的类型的方式。它类似于在 JavaScript 中通过索引访问对象属性的操作,但用于类型层面。 基本语法 Type[Key] Type:可以是任意类型(对象类型、接口、元组等) 阅读全文
posted @ 2025-09-08 16:34 Seamless 阅读(14) 评论(0) 推荐(0)
摘要: 在 TypeScript 中,箭头函数与普通函数的区别基本继承了 JavaScript 的特性,同时由于 TypeScript 的类型系统,还存在一些与类型相关的差异。 主要区别如下: 1.语法与类型注解 普通函数:需要显式使用function关键字,参数和返回值的类型注解直接写在参数列表和函数体前 阅读全文
posted @ 2025-09-07 19:29 Seamless 阅读(14) 评论(0) 推荐(0)
摘要: 在 TypeScript 中,keyof 是一个关键字,用于获取某种类型的所有键(key),并返回这些键组成的联合类型(union type)。它可以帮助你在编译时获取对象的属性名,从而实现更类型安全的代码。 基本用法 假设有一个接口或类型定义: interface Person { name: s 阅读全文
posted @ 2025-09-07 15:47 Seamless 阅读(23) 评论(0) 推荐(0)
摘要: JavaScript 或者Typescript 中普通函数和箭头函数的this绑定规则不同: 1.普通函数的this是在调用时确定的,取决于函数的调用方式 2.箭头函数的this是在定义时确定的,继承自外层作用域的this 比较这两段代码: let deck = { suits: ["hearts" 阅读全文
posted @ 2025-09-06 16:17 Seamless 阅读(13) 评论(0) 推荐(0)