Typescript中工具类型实现 这一部分有可能需要你进行手写,但对于完成了整本小册阅读的你来说,肯定不是难事,这一部分就不做过多叙述了。 及格线比较简单的工具类型手写可能包括 Partial(Require)、Pick(Omit)、ReturnType(ParameterType),小册中均已介绍了相关实现与原理,这里就不再赘述。 优秀回答在完成手写的基础上,其实你也可以主动进行扩展。 我不仅能写出这些基础实现,还能写出其在实 2023-04-11 #TypeScript
Typescript中any、unknown 与 never 这一部分主要考察你对内置 Top Type、Bottom Type 的理解,属于相对少见的考察,因此通常也不会要求过高。 及格线具体内容已经在小册中详细描述,这里只做简单叙述。any 与 unknown 在 TypeScript 类型层级中属于最顶层的 Top Type,也就意味所有类型都是它俩的子类型。而 never 则相反,作为 Bottom Type 的它是所有类型的子类型。 优秀回答面试的 2023-04-11 #TypeScript
Typescript中类型兼容性比较 这一问题主要考察你是否了解 TypeScript 类型系统的基本工作原理,以及使用的深入程度。因为通常来说,只有具有一定经验的使用者才会开始了解类型兼容性的相关规则,而了解这部分规则也就意味着你至少能够独立解决相当一部分类型报错。 及格线TypeScript 使用鸭子类型,也即结构化类型系统进行类型兼容性的比较,即对于两个属性完全一致的类型,就认为它们属于同一种类型。而对于 A 类型、A + B 2023-04-11 #TypeScript
Typescript中Interface与Type的异同点 interface 与 type 异同点这可能是最经典的一道 TS 面试题了,因此这里我们放在第一个知识点来讲解。 及格线不论如何,以下这些概念是你需要基本了解的,否则很容易被怀疑是否真的深入使用过 TypeScript 。 在对象扩展情况下,interface 使用 extends 关键字,而 type 使用交叉类型(&)。 同名的 interface 会自动合并,并且在合并时会要求兼 2023-04-11 #TypeScript
Typescript中infer的理解 条件类型在泛型的基础上支持了基于类型信息的动态条件判断,但无法直接消费填充类型信息,而 infer 关键字则为它补上了这一部分的能力,让我们可以进行更多奇妙的类型操作。 1type PromiseValue<T> = T extends Promise<infer V> ? PromiseValue<V> : T; 2023-04-11 #TypeScript
This project is configured to use pkgName 在用pnpm install时报错This project is configured to use pkgName删除用户根目录package.json,因为里面包含 123{ "packageManager": "yarn@..."} 2023-04-11 #yarn #pnpm
zsh安装&配置nvm vim ~/.zshrc 123export NVM_DIR="$HOME/.nvm" [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm [ -s "/opt/ho 2023-04-11 #zsh #nvm
React实践 React 在redux中,全局state必须是immutable的,这点毋庸置疑是我们使用immutable来优化redux的核心 组件props是通过redux的connect从state中获得的,并且引入immutableJS的另一个目的是减少组件shouldComponentUpdate中不必要渲染,shouldComponentUpdate中比对的是props,如果props是原生JS 2023-03-23 #React