【前端高频面试题】 - TypeScript 篇

【前端高频面试题】—— TypeScript 篇(2025-2026 最新趋势版)

以下是目前大厂和中高级前端岗位最常问的 TypeScript 面试题,按出现频率和难度从高到低排序,涵盖基础、进阶、工程化、类型体操等多个维度。

基础 & 核心概念(几乎必问)

  1. TypeScript 和 JavaScript 的主要区别是什么?TypeScript 的优势和劣势分别有哪些?
  2. type 和 interface 有什么区别?什么场景下应该用哪个?
  3. 什么是类型推断(Type Inference)?举几个常见的类型推断场景。
  4. const 和 readonly 的区别?什么时候用 readonly?
  5. 什么是类型兼容性(Type Compatibility)?结构类型系统和标称类型系统有什么区别?
  6. any、unknown、never 三者的区别和使用场景分别是什么?
  7. 泛型(Generics)是什么?为什么需要泛型?写出几个常见的泛型工具类型的使用场景。

中级 & 常用高级类型(非常高频)

  1. extends 在 TypeScript 中有几种含义?分别是什么?
  2. 条件类型(Conditional Types)是什么?infer 关键字怎么用?
  3. 分布式条件类型(Distributive Conditional Types)是什么?什么时候会触发分布式?
  4. keyof、typeof、in、as const 这几个关键字分别在什么场景下使用?
  5. 请手写以下几个高频工具类型(至少说出思路)
    • Partial
    • Required
    • Pick<T, K>
    • Omit<T, K>
    • Exclude<T, U>
    • Extract<T, U>
    • NonNullable
    • ReturnType
    • Parameters
    • ConstructorParameters
    • InstanceType
  6. 如何实现一个深度 Partial(DeepPartial)?

进阶 & 类型体操(中高级必考)

  1. 如何约束泛型参数必须是某个类型的 key?(keyof)
  2. 如何写一个类型,让它接收一个对象类型,返回这个对象所有值的联合类型?
  3. 如何实现一个类型 Get<T, K>,可以支持多级路径(如 Get<User, ‘address.street’>)?
  4. 什么是映射类型(Mapped Types)?如何利用映射类型实现一个类型反转(key 和 value 互换)?
  5. 如何实现一个类型 IsEqual<T, U>,判断两个类型是否完全相等?(考虑分布式)
  6. 如何写一个类型,让它把一个联合类型转成交叉类型?(Union to Intersection)
  7. 模板字面量类型(Template Literal Types)在 4.1+ 版本有什么典型应用场景?

工程 & 实际应用(大厂偏爱)

  1. 在项目中如何更好地使用 TypeScript?(最佳实践角度)
  2. @ts-ignore、@ts-expect-error、@ts-nocheck、@ts-check 分别是什么意思?使用场景和优先级?
  3. declare 关键字有什么作用?什么时候需要用 declare?
  4. 如何给第三方没有类型定义的库写类型声明文件(.d.ts)?
  5. 如何处理 React 中常见的类型问题?
    • FC vs FunctionComponent
    • PropsWithChildren
    • useRef 的泛型
    • forwardRef + useImperativeHandle 的类型
    • event 类型(React.MouseEvent、React.ChangeEvent 等)
  6. TypeScript 如何实现函数重载(Function Overloading)?
  7. const enum 和普通 enum 的区别?tree-shaking 的时候有什么影响?
  8. satisfies 操作符(4.9+)有什么用?举例说明。

类型体操 & 难题(资深/难题)

  1. 实现一个类型 Flatten,把多维数组展平为一维
  2. 实现一个类型 Mutable,把所有 readonly 属性变成可变
  3. 实现一个类型 DeepReadonly,深度 readonly
  4. 实现一个类型 Diff<T, U>,找出 T 中不在 U 中的属性
  5. 实现一个类型 PromiseAll 的类型定义(类似 Promise.all 的类型)
  6. 实现一个类型 Last,获取元组最后一个元素类型
  7. 实现一个类型 TupleToObject,把元组转成对象类型(key 和 value 相同)

总结:面试准备建议(2025-2026 版)

如果你正在准备面试,可以告诉我你现在的水平(初级/中级/高级)或者你最想深入的几个题,我可以:

  • 给你详细答案 + 代码示例
  • 帮你模拟面试追问
  • 提供更难的体操题

你想先看哪几道题的详细解析?或者直接来一套模拟面试?

Read more

llama.cpp本地部署性能调优指南:从启动瓶颈到推理效率的全方位优化

llama.cpp本地部署性能调优指南:从启动瓶颈到推理效率的全方位优化 【免费下载链接】llama.cppPort of Facebook's LLaMA model in C/C++ 项目地址: https://gitcode.com/GitHub_Trending/ll/llama.cpp 在本地部署大语言模型时,你是否经常遇到启动缓慢、资源占用过高的问题?模型加载时间过长不仅影响开发效率,更会降低用户体验。本文将通过"问题诊断→核心原理→分级优化→场景适配"的框架,帮助你系统性解决llama.cpp的启动性能瓶颈,实现模型加载速度与资源占用的双重优化。我们将深入分析性能瓶颈的根本原因,提供分级优化策略,并针对不同使用场景给出定制化解决方案,让你的本地大模型部署既高效又稳定。 问题诊断:llama.cpp启动性能瓶颈分析 症状识别:常见性能问题表现 启动llama.

《LLaMA-Factory WebUI 快速上手:常见模型加载问题解决技巧》

LLaMA-Factory WebUI 快速上手:常见模型加载问题解决技巧 在人工智能领域,模型加载是使用大型语言模型的关键第一步。LLaMA-Factory作为一款开源工具,提供了直观的Web用户界面(WebUI),帮助用户轻松管理和部署模型。然而,许多新手在加载模型时遇到各种问题,导致效率低下或失败。本文将从快速上手开始,逐步介绍常见模型加载问题的解决技巧,确保您能顺利启动项目。文章基于实际经验原创撰写,内容实用可靠。 一、LLaMA-Factory WebUI 快速入门 LLaMA-Factory的WebUI设计简洁,适合初学者快速掌握。以下是最基本的操作步骤: 1. 模型加载流程:在WebUI中: * 选择“模型加载”选项卡。 * 输入模型名称或路径(如 llama-2-7b)。 * 点击“加载”按钮。系统会自动处理依赖和配置。 整个过程通常只需几分钟,界面会显示进度条和状态提示。 首次使用建议:为节省时间,优先加载小型模型(如 llama-2-7b),避免资源占用过大。加载成功后,您可立即测试推理功能: # 示例代码:简单文本生成

旧电脑 Win7 复活计划:编译与运行 llama.cpp (Qwen3版)

旧电脑 Win7 复活计划:编译与运行 llama.cpp (Qwen3版)

🦕 旧电脑 Win7 复活计划:编译与运行 llama.cpp (Qwen3版) 这份指南专为不支持新版软件的 Windows 7 设计,通过本地编译实现大模型运行。 手动编译可以获得最好的性能,不想自己手动编译 可以直接使用下面编译好的bin文件,同时包含下面用到的相关软件和替换文件httplib.h 链接:https://pan.quark.cn/s/2c5f627c93d7 提取码:cSJh 📋 0. 软件版本清单 请务必确保使用以下特定版本,以保证在 Win7 下的兼容性: 软件名称文件名 (根据截图)作用备注编译环境w64devkit-x64-2.5.0.7z.exe提供 GCC 编译器核心工具构建工具cmake-3.31.10-windows-x86_64.msi生成编译配置必须安装到默认路径源码工具Git_for_Windows_(64bit)_v2.45.

AI绘画+电商:用图片和视频驱动未来电商

过去三年里,AI绘画从实验室走向大众,从简单模仿到艺术创作。如今,这项技术正悄然改变着一个万亿美元级的行业——电子商务。当AI绘画遇上电商,一场深刻的视觉革命正在拉开帷幕。 视觉冲击力:电商转化的第一道门槛 在电商平台上,消费者无法触摸实物,视觉呈现成为购买决策的关键因素。研究表明: * 高质量产品图能将转化率提升30-50% * 视频展示的商品比仅用图片的商品多获得157%的点击率 * 87%的线上消费者认为产品图片是购物决策的重要因素 然而,高质量视觉内容的制作传统上面临三大挑战:成本高、周期长、创意匮乏。专业摄影、模特拍摄、后期修图,每个环节都需要大量时间和资金投入,对小企业和新兴品牌尤为不友好。 AI绘画技术:视觉内容的民主化革命 AI绘画技术的突破性进展正在改变这一局面。以Midjourney、Stable Diffusion、DALL-E 3为代表的一批AI绘画工具,让高质量视觉内容的创作变得前所未有地简单和高效。 四大核心应用场景: 1. 产品视觉优化与扩展 * 一键生成专业级产品展示图 * 自动扩展产品使用场景(如咖啡机在不同厨房环境中的