TypeScript Mixin October 26, 2025 1222 words • 7 min read 在经典的面向对象编程中,我们经常使用继承的方法:创建一个通用的基类,然后扩展它以创建更特化的类。然而,这种模型有其局限性。如果我们想从两个或多个不相关的类中组合功能,该怎么办?TypeScript 和 JavaScript 一样,**只允许一个类扩展单个父类**。这就是“**组合优于继承**”原则发挥作用的地方。而 Mixin 即是实现这一目标的强大模式。... #TypeScript#Design Pattern
TypeScript 装饰器 October 24, 2025 1585 words • 8 min read 装饰器模式是一种结构型设计模式,它允许我们**在运行时动态地向一个对象添加新的行为和职责**,同时又不改变其结构。 这种模式的核心优势在于它遵循了“开闭原则”:对扩展开放,对修改关闭。我们可以在不修改现有代码的情况下,为其增添新功能。 在 TypeScript 和 JavaScript (ES2022+) 中,装饰器是这一设计模式的语法糖。它是一种特殊的函数,以 `@expression`... #TypeScript#Design Pattern
lr-shedule October 18, 2025 83 words • 1 min read Write your blog post content here. This is a new blog post... #Deep Learning
批归一化补充 October 18, 2025 2033 words • 11 min read 批归一化的理论知识与实现在[之前 CS289 的作业中](https://fyerfyer. dev/blog/cs289-hw6-code/)已经有详细讲解了,这里谈论下对批归一化的一些理解。 批标准化(BN)能够稳定网络,从而允许使用远高于常规的学习率进行训练,而不会导致模型发散(即训练失败)。 我们使用 CIFAR-10 数据集做下面这个简单的实验: ```python def... #Deep Learning
参数初始化 October 18, 2025 1243 words • 7 min read 在前面的笔记中,我们提到了梯度爆炸与梯度消失的问题: - 如果梯度连乘项中的每一个因子都小于 1,那么一长串小于 1 的数字相乘,结果会以指数级速度缩小,迅速趋近于 0。 - 如果梯度连乘项中的每一个因子都大于 1,那么一长串大于 1 的数字相乘,结果就会以指数级速度增大,变得异常巨大。 导致这些现象的根本原因在于不恰当的信号流。而我们可以**用方差来衡量信号的强度**: - 方差接近于... #Deep Learning
TypeScript 类 October 18, 2025 1277 words • 7 min read TypeScript 完全支持 ES6 的 `class`,并在此基础上引入了更多强大的静态类型功能。 TypeScript 提供了三个访问修饰符来控制类成员(属性和方法)的可见性,这增强了类的封装性。 - **`public`** (默认): 成员在任何地方都可以被访问。 - **`protected`**: 成员只能在**类自身及其子类**中被访问。 - **`private`**:... #TypeScript
TypeScript 高级类型:字面量与枚举 October 17, 2025 1077 words • 6 min read 字面量类型 (Literal Types) 允许我们将一个变量的类型指定为某个具体的“字面量”值,而不仅仅是 `string` 或 `number`。这是一种非常精确的类型约束。 这是最常见的字面量类型,它将一个变量的可能值限制为几个特定的字符串之一。通常与类型别名(`type`)和联合类型(`|`)结合使用。 ```typescript // 定义一个字符串字面量类型 type... #TypeScript
TypeScript 声明文件 October 17, 2025 2358 words • 12 min read TypeScript 的核心优势在于其静态类型系统。然而,我们开发的绝大多数项目都依赖于没有使用 TypeScript 编写的第三方 JavaScript 库(如 jQuery, Lodash 等)。为了让 TypeScript 编译器理解这些库的类型信息,从而提供代码补全、类型检查和智能提示,**声明文件**应运而生。 声明文件(通常以 `. ts`... #TypeScript
TypeScript 接口 October 17, 2025 1061 words • 6 min read 在 TypeScript 中,接口(`interface`)是定义代码“契约”或“形状”的核心工具。它用于描述对象应该包含哪些属性和方法,而不关心其具体的实现。这使得我们能够编写出更加灵活且结构清晰的代码。 TypeScript 的接口主要用于**描述对象的形状(Shape)**。它定义了一个对象**必须包含哪些属性,以及这些属性的类型**。 ```typescript interface... #TypeScript
TypeScript 基础类型 October 17, 2025 1824 words • 10 min read JavaScript 的原始数据类型包括:`boolean`、`number`、`string`、`null`、`undefined`、`symbol` 和 `bigint`。TypeScript 为这些类型都提供了相应的类型注解。 使用 `boolean` 定义布尔值类型。 ```typescript let isDone: boolean = false; let isVisible:... #TypeScript