专题
TypeScript 类型体操与实战
围绕泛型、条件类型与常用内置工具类型,理解 TypeScript 类型系统并练习独立实现。
这个专题会帮你理清
- 从 Readonly、Pick、Omit 等问题建立类型推导直觉
- 理解递归类型和条件类型的拆解方法
- 把内置工具类型还原成可练习的小题
全部文章
20 篇如何监听 div 是否渲染完成
本文介绍了在Next.js中使用NextMarkdownPreview组件时,如何通过MutationObserver监听div的ref对象来解决按需加载导致的加载慢问题。通过监听childList变化,可以及时获取容器内容变化,优化用户体验。
·约 1 分钟·社区来稿 · admin
react-monaco-markdown 操作手册
react-monaco-markdown是一个React组件,集成了Monaco编辑器和Markdown解析,支持实时预览和编辑Markdown文档。支持npm、pnpm、yarn安装。提供多种配置选项,如主题、只读模式、自定义渲染等。适用于Next.js等SSR环境。MIT许可。
·约 2 分钟·社区来稿 · song-shao
monaco-editor-react
Monaco Editor for React集成了monaco-editor,适用于任何React应用,无需配置webpack等打包工具。支持TypeScript重写,提供多模型编辑器,与@monaco-editor/loader集成,提供开发/游乐场地。主要特性包括:无需配置即可使用、支持多模型编辑、提供Editor和DiffEditor组件、支持自定义主题和语言、提供丰富的API和事件处理。
·约 14 分钟·社区来稿 · song-shao
WebAPI:XMLHttpRequest是怎么实现的?
本文深入探讨了JavaScript中的XMLHttpRequest对象,解释了其在不刷新页面的情况下与服务器交换数据的能力。文章首先介绍了JavaScript操作DOM的方法,然后详细阐述了XMLHttpRequest的基本概念、工作流程、使用方式以及回调函数的同步与异步执行。进一步,文章探讨了XMLHttpRequest背后的实现机制,包括创建请求、配置请求信息、发送请求和处理响应。指出了使用X
·约 9 分钟·社区来稿 · batype
任务调度:有了setTimeOut,为什么还要使用rAF?
本文深入探讨了JavaScript中`requestAnimationFrame`(简称rAF)与`setTimeout`在实现动画时的性能差异。文章首先介绍了浏览器渲染进程的任务调度系统,解释了rAF相较于`setTimeout`的优势在于其能够与浏览器的刷新周期同步,从而实现更流畅的动画效果。接着,文章回顾了Chromium任务调度系统的演变,从单消息队列的队头阻塞问题,到引入高优先级队列,再
·约 13 分钟·社区来稿 · admin
Promise:使用Promise,告别回调函数
Promise:使用Promise,告别回调函数
·约 10 分钟·社区来稿 · batype
消息队列和事件循环:页面是怎么“活”起来的?
深入探讨浏览器页面主线程的工作原理,包括消息队列和事件循环系统。首先介绍单线程处理任务的基本概念,然后通过C++代码示例,逐步引导读者理解如何在线程运行中处理新任务,并引入事件循环机制。接着,文章讨论了如何通过消息队列实现线程间的任务传递,以及如何处理来自其他进程的任务。此外,还分析了消息队列中任务类型的多样性,以及如何安全退出页面主线程。指出使用单线程的缺点,并提供实践建议,帮助开发者优化Web
·约 10 分钟·社区来稿 · batype
async/await:使用同步的方式去写异步代码
探索JavaScript异步编程的革新,从Promise到async/await,深入理解生成器、协程及V8引擎实现机制。本文提供详细的技术解析和代码示例,助力开发者掌握ES7的异步编程模式,优化代码结构,提升编程效率。
·约 10 分钟·社区来稿 · admin
对象属性只读(递归)DeepReadonly
实现一个泛型 DeepReadonly<T ,它将对象的每个参数及其子对象递归地设为只读。
·约 1 分钟
获取只读属性 GetReadonlyKeys
实现泛型 GetReadonlyKeys<T , GetReadonlyKeys<T 返回由对象 T 所有只读属性的键组成的联合类型。
·约 1 分钟
实现 Omit
不使用 Omit 实现 TypeScript 的 Omit<T, K 泛型。
·约 1 分钟
实现 Pick
不使用 Pick<T, K ,实现 TS 内置的 Pick<T, K 的功能
·约 1 分钟
对象属性只读 Readonly
不要使用内置的 Readonly<T ,自己实现一个。
·约 1 分钟
对象部分属性只读 Readonly
实现一个泛型 MyReadonly2<T, K ,它带有两种类型的参数 T 和 K 。
·约 1 分钟
实现 ReturnType
不使用 ReturnType 实现 TypeScript 的 ReturnType<T 泛型。
·约 1 分钟
实现类似 Vue 的类型支持的简化版本
实现类似 Vue 的类型支持的简化版本。
·约 1 分钟
unstate-next 的实现原理
需要实现包装方法和获取数据的 hooks
·约 1 分钟
unstate-next 的使用
Code-Test
·约 1 分钟
session-cookies 三个缓存 localStorage、sessionStorage、Cookies。
https://badge.fury.io/js/session-cookies
·约 1 分钟
type 的使用
作用:给已有类型取别名 和 定义一个新的类型 搭配联合类型使用
·约 1 分钟