首页/文章/typescript

typescript

8 篇文章

typescript09-26
阅读

彻底讲透as const + keyof typeof

一、为什么要 “as const” 1、默认情况下,TS把字面量推断成”宽类型“ 于是你写 ‘foo’ | ‘bar’ 时, 一旦拼错成 ’fooo‘, TS不会拦你。 2、加上 as const ,TS会把它当成”不可变的精确字面量” 数组、对象同理: 二、keyof typeof: 把值世界映射到类型世界 typeof:能把运行时的值变成类型; keyof:能把对象类型变成联合类型 合起来就是:给我一个对象,我立刻推出它所有建的字面...

#学习#面试
typescript02-26
阅读

TypeScript 中的 interface和 type 类型有什么区别?它们各自有什么用途?

在 TypeScript 中, 和 都可以用于定义类型,但它们有一些细微的差异和特定的应用场景。下面我们详细比较它们的 区别 、 相同点 以及 各自的用途 。 一、相同点 1. 描述对象的结构 : 和 都可以用来描述对象的结构。 2. 都支持可选属性和只读属性 : 3. 都可以扩展 (类似于继承)。不过扩展的方式不同(具体见下文)。 二、区别 | 特性 | interface | type | | | | | | 定义方式 | 使用 关...

#学习#面试#面试官
typescript08-07
阅读

TypeScript 中 `type` 和 `interface` 的区别

基本概念: 和 究竟是啥? 就是类型别名,用来给各种类型起个名字。可以是基本类型、对象类型、联合类型、交叉类型、元组等。 则专注于定义对象的结构和行为。它更像是面向对象编程中的蓝图,描述了对象应该拥有哪些属性和方法。 用途和功能:什么时候用 ,什么时候用 ? 的用途和功能 复杂类型组合 : 非常适合定义联合类型、交叉类型和元组。 灵活性高 :可以进行类型变换,比如条件类型和映射类型。 的用途和功能 描述对象结构 : 用来定义对象的形状,...

#学习
typescript05-13
阅读

破案了,为啥TypeScript5.3编译let、const一直是var

啊!2024才学TypeScript还有价值吗?!学的话,就用最新的上。 1.环境 8.15.4 Version 5.3.3 v20.10.0 2.背景&测试 使用pnpm安装了最新的TypeScript5.3.3,开始学习ts类型。 发现不论是let、const使用tsc编译完都是var。强迫症表示ES2016起不能接受var,尝试各种配置tsconfig.json后无效。 为什么let 经过tsc编译后 let= var 简化此图投...

#学习
typescript04-28
阅读

TS系列篇|类(class)

"不畏惧,不将就,未来的日子好好努力"——大家好!我是小芝麻😄 类(Class)定义了一件事物的抽象特点,包含它的属性和方法 1、定义类 在 中,我们也是通过 关键字来定义一个类, 使用 定义构造函数。 构造函数: constructor 主要用于初始化类的成员变量属性 类的对象创建时自动调用执行 没有返回值 2、类的继承 使用 关键字实现继承,子类中使用 关键字来调用父类的构造函数和方法。 子类继承父类后子类的实例就拥有了父类中的属...

#学习
typescript11-29
阅读

详解TypeScript项目中的tsconfig.json配置

在TS的项目中,TS最终都会被编译JS文件执行,TS编译器在编译TS文件的时候都会先在项目根目录的 文件,根据该文件的配置进行编译,默认情况下,如果该文件没有任何配置,TS编译器会默认编译项目目录下所有的 文件。实际项目中,会根据自己的需求进行自定义的配置,下面就来详细了解下 的文件配置。 文件选项配置 : 表示编译需要编译的单个文件列表 : 表示编译需要编译的文件或目录 :表示编译器需要排除的文件或文件夹 默认排除 文件夹下文件 :...

typescript09-19
阅读

tsconfig.json配置详解

typescript01-04
阅读

解决依赖包在TS环境不可用问题

在TS项目中,经常会出现已经安装了依赖包,但是引入依赖包还是报错 1、在src目录下新建文件夹"@type" 2、在@type目录下新建以依赖包为名称的文件夹,例如"react router dom" 3、在对应依赖包文件夹下新建文件"index.d.ts",内容为 declare module "react router dom" 4、再查看引入依赖,就不会报错了