Rowan Liu

Results 85 comments of Rowan Liu

https://github.com/haizlin/fe-interview/issues/5498 Same

在TypeScript中,检查 `null` 和 `undefined` 是一个常见的需求。以下是一些常用的方法和技巧: ### 使用严格等于(===)和不等于(!==) 使用严格等于(`===`)和不等于(`!==`)操作符可以精确地检查 `null` 和 `undefined`。 ```typescript let value: string | null | undefined; // 检查是否为null if (value === null) { console.log("Value is null"); }...

在 TypeScript 中,类型保护(Type Guards)是一个用于缩小变量类型范围的机制,确保在特定代码块中只能处理特定类型的变量。通过类型保护,TypeScript 编译器可以理解变量在某些条件下会具有特定的类型,从而提供更精确的类型检查和代码补全。 ### 类型保护的几种常见方式 #### 1. 使用 `typeof` 操作符 `typeof` 操作符可以用来检查基本类型,例如 `string`、`number`、`boolean` 等。 ```typescript function printValue(value: string | number) { if (typeof value === "string") { //...

在TypeScript中,创建变量的方式与JavaScript非常相似。你可以使用 `let`、`const` 和 `var` 来声明变量。以下是每种方式的详细解释和示例: ### 使用 `let` `let` 用于声明一个块作用域的变量,可以在声明后重新赋值。 ```typescript let age: number = 25; let name: string = "Alice"; let isStudent: boolean = true; age = 26; //...

在TypeScript中,函数重载可以通过定义多个函数签名来实现。函数签名定义了函数的不同调用方式,而实际的函数实现则通过条件判断来处理不同的参数组合。以下是一个简单的例子,展示了如何在TypeScript中实现函数重载: ### 步骤一:定义函数签名 你可以定义多个函数签名,描述函数可能的不同参数组合和返回类型。例如: ```typescript function getValue(value: string): string; function getValue(value: number): number; ``` ### 步骤二:实现函数 在定义完签名之后,你需要提供一个实际的函数实现。这个实现必须包含所有签名的逻辑,并根据参数的类型或数量来执行不同的代码: ```typescript function getValue(value: string | number): string | number { if (typeof value...

编译 TypeScript 文件需要使用 TypeScript 编译器 (`tsc`)。以下是如何编译 TypeScript 文件的详细步骤: ### 步骤一:安装 TypeScript 编译器 首先,需要全局安装 TypeScript 编译器。如果你还没有安装 Node.js 和 npm,请先安装它们。然后在命令行中运行以下命令来安装 TypeScript 编译器: ```bash npm install -g typescript ``` ### 步骤二:创建 TypeScript 文件...

在 TypeScript 中,三斜杠指令(Triple-Slash Directives)是一种特殊的单行注释,用于在编译阶段提供编译器指令。这些指令以 `///` 开头,通常位于文件的顶端。以下是 TypeScript 中常用的三斜杠指令: 1. **`/// `** - 用于包含外部文件。这对于使用没有模块系统的代码时特别有用。 - 示例: ```typescript /// ``` 2. **`/// `** - 用于声明对类型定义文件的依赖。通常用于引入 `@types` 包中的类型定义。 - 示例: ```typescript /// ///...

对于AMD模块,ES模块,CommonJS模块系统,这里顺带提一下,这是我之前面试常见的面试题之一。 在 JavaScript 和 TypeScript 中,不同的模块系统用于管理和组织代码。以下是关于两种主要模块系统(CommonJS 和 AMD)以及它们之间的区别的详细解释。 ### CommonJS 模块系统 CommonJS 是 Node.js 中使用的模块系统,设计用于服务器端 JavaScript 环境。它通过 `require` 和 `module.exports` 实现模块的导入和导出。 #### 特点: - **同步加载**:模块是同步加载的,这在服务器端环境中是可行的,因为文件通常已经在本地。 - **简洁的语法**:使用 `require` 导入模块,使用 `module.exports`...

在 TypeScript 中,`null` 和 `undefined` 都表示值不存在的情况,但它们有不同的用途和语义: 1. **`undefined`**: - 表示变量被声明了,但尚未赋值。 - 默认情况下,未初始化的变量会被赋值为 `undefined`。 - JavaScript 中函数没有返回值时默认返回 `undefined`。 示例: ```typescript let a: number | undefined; console.log(a); // 输出:undefined function doNothing() {...

在 TypeScript 中,支持以下几种 JSX 模式: 1. **Preserve**: - 在编译过程中,JSX 标签将会被保留,而不会被转换为 `React.createElement` 调用。最终的输出文件仍然包含 JSX 标签,这种模式通常用于后续处理步骤,例如使用 Babel 或其他工具进行进一步的编译。 - 配置:`"jsx": "preserve"` 2. **React**: - 这是最常用的模式。在这种模式下,JSX 标签会被转换为 `React.createElement` 调用。输出文件不再包含 JSX 标签,而是标准的 JavaScript 代码。...