TypeScript
记录typescript相关知识
凯小默
专注前端领域开发。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
28-extends和类型推断infer
【代码】28-extends和类型推断infer。原创 2025-11-23 15:26:56 · 97 阅读 · 0 评论 -
25-工具类型(Partial)
【代码】25-工具类型(Partial)原创 2025-11-22 17:13:06 · 128 阅读 · 0 评论 -
24-抽象类和接口
【代码】24-抽象类和接口。原创 2025-11-22 17:12:57 · 86 阅读 · 0 评论 -
23-类修饰符
【代码】23-类修饰符。原创 2025-11-22 17:12:45 · 88 阅读 · 0 评论 -
22-类的继承
【代码】22-类的继承。原创 2025-11-22 17:12:01 · 87 阅读 · 0 评论 -
21-类的定义(类-接口)
【代码】21-类的定义(类-接口)原创 2025-11-22 17:00:10 · 116 阅读 · 0 评论 -
20-泛型约束
【代码】20-泛型约束。原创 2025-11-22 16:59:54 · 115 阅读 · 0 评论 -
27-keyof和in
【代码】27-keyof和in。原创 2025-11-22 17:13:52 · 91 阅读 · 0 评论 -
26-工具类型(Required)
【代码】26-工具类型(Required)原创 2025-11-22 17:13:26 · 117 阅读 · 0 评论 -
19-泛型(类型别名,接口)
【代码】19-泛型(类型别名,接口)原创 2025-11-21 10:54:16 · 110 阅读 · 0 评论 -
18-泛型
【代码】18-泛型。原创 2025-11-21 10:53:57 · 101 阅读 · 0 评论 -
17-枚举
【代码】17-枚举。原创 2025-11-21 10:52:34 · 125 阅读 · 0 评论 -
16-让this指向自定义对象
【代码】16-让this指向自定义对象。原创 2025-11-21 10:52:07 · 94 阅读 · 0 评论 -
15-this的指向问题2
【代码】15-this的指向问题2。原创 2025-11-21 10:51:45 · 105 阅读 · 0 评论 -
14-this的指向问题
注意下面这个例子没有写。原创 2025-11-21 10:51:14 · 107 阅读 · 0 评论 -
13-ts中的promise
【代码】13-ts中的promise。原创 2025-11-21 09:31:32 · 88 阅读 · 0 评论 -
12-函数参数的写法
【代码】12-函数参数的写法。原创 2025-11-21 09:29:35 · 131 阅读 · 0 评论 -
11-函数
【代码】11-函数。原创 2025-11-21 09:29:21 · 76 阅读 · 0 评论 -
10-类型别名的使用
【代码】10-类型别名的使用。原创 2025-11-21 09:29:00 · 104 阅读 · 0 评论 -
09-联合交叉类型
【代码】09-联合交叉类型。原创 2025-11-20 17:36:02 · 105 阅读 · 0 评论 -
08-接口的继承、同名、缺省、只读
【代码】08-接口的继承、同名、缺省、只读。原创 2025-11-20 17:27:55 · 104 阅读 · 0 评论 -
07-接口类型interface
【代码】07-接口类型interface。原创 2025-11-20 17:26:00 · 124 阅读 · 0 评论 -
06-any和unknown
【代码】06-any和unknown。原创 2025-11-20 17:25:05 · 154 阅读 · 0 评论 -
05-交叉类型
【代码】05-交叉类型。原创 2025-11-20 17:24:06 · 86 阅读 · 0 评论 -
04-联合类型
【代码】04-联合类型。原创 2025-11-20 17:22:25 · 123 阅读 · 0 评论 -
03-数组类型
【代码】03-数组类型。原创 2025-11-20 17:09:20 · 114 阅读 · 0 评论 -
02-ts非原始类型
【代码】02-ts非原始类型。原创 2025-11-20 16:54:23 · 105 阅读 · 0 评论 -
01-ts原始类型
vscode 里面的终端找到执行命令里面的监视 tsconfig.json 文件。typescript 是 javascript 的超集。在项目文件夹中执行下面命令表示ts初始化项目。更加严谨,编写代码的时候静态类型的校验。通过界面实时构建ts文件。通过命令实时构建ts文件。原创 2025-11-20 16:52:20 · 237 阅读 · 0 评论 -
21 # 高级类型:条件类型
分布式条件类型(Distributive Conditional Types)是一种特殊类型的条件类型,它在处理联合类型时会表现出特定的行为。当条件类型被应用于联合类型时,如果联合类型中包含了带有类型参数的条件类型,那么 TypeScript 会自动将条件类型“分发”到联合类型的每个成员上,并将结果组合成一个新的联合类型。**Extract 跟 Exclude 相反, Exclude 是从类型 T 中过滤掉可以赋值给类型 U 的类型, Extract 是从类型 T 中可以抽取出赋值给 U 的类型。原创 2024-03-18 19:53:22 · 734 阅读 · 0 评论 -
20 # 高级类型:映射类型
映射类型本质上是一种预先定义的泛型接口,通常还会结合索引类型获取对象的属性和属性值,从而将一个对象映射成我们想要的结构。映射类型(Mapped Types)是一种强大的工具,用于从一个现有的类型中创建新类型。通过映射类型,我们可以在编译时基于旧类型创建新类型,而无需手动重复定义属性。上面三种称为同态,他们只会作用于 Obj 中的属性,不会引入新的属性。通过 Readonly 内置泛型接口。下面这种会创建新的属性,它是非同态的。把接口的所有属性变成可选的。比如:将所有属性变成只读。原创 2024-03-18 19:20:47 · 551 阅读 · 0 评论 -
19 # 高级类型:索引类型
是一种索引类型查询操作符,用于获取类型 T 的所有属性名的联合类型。它可以用于访问和操作对象类型的属性名称。表示类型 T 中索引为 K 的属性的类型。这种语法通常用于访问对象类型中特定属性的类型。可以使用索引来约束处理这种问题。原创 2024-03-18 18:56:37 · 538 阅读 · 0 评论 -
18 # 高级类型:交叉类型与联合类型
可区分联合类型(Discriminated Unions)是 TypeScript 中一种特殊的联合类型,通过一个共同的属性(称为 discriminant)来区分联合类型中的不同成员。方法二:利用 never 类型,检查 s 是不是 never 类型,如果是 never 类型,说明以前的分支都被的覆盖了,永远不会走到,如果不是 never 类型,说明有遗漏。运算符将多个类型组合到一起形成一个新的类型,新类型将包含所有原始类型的属性和方法。联合类型(Union Types)是指通过。原创 2024-03-14 21:08:04 · 477 阅读 · 0 评论 -
17 # 类型检查机制:类型保护
上面的跟会报错,因为lang是个联合类型,TypeScript 不能确定lang是什么类型。但是这种方案需要在每处都加,代码可读性差。而类型保护就是用来解决这个问题的。它可以提前对类型做出预判。原创 2024-02-01 20:25:10 · 565 阅读 · 0 评论 -
16 # 类型检查机制:类型兼容性
加个成员,两个变量就不兼容了,只有类型参数 T 被接口成员使用的时候才会影响泛型的兼容性。当一个类型 Y 可以被赋值给另一个类型 X 时,我们说类型 X 兼容类型 Y。函数重载:目标函数的参数要多余源函数的参数而且返回值要符合相应的要求。的时候, 字符型兼容 null 类型,null 是字符的子类型。:目标函数的返回值类型必须与源函数的返回值类型相同或为其子类型。X 兼容 Y :X(目标类型)= Y(源类型):目标的参数的个数一定要多余源函数的参数个数。对象类型:成员个数多的兼容个数少的(设置。原创 2024-01-31 20:32:12 · 698 阅读 · 0 评论 -
15 # 类型检查机制:类型推断
不需要指定变量的类型(函数的返回值类型),TypeScript 可以根据某些规则自动为其推断出一个类型。类型检查机制:TypeScript 编译器在做类型检查时,所秉承的一些原则,以及表现出的一些行为。作用:辅助开发,提高开发效率。原创 2024-01-23 20:35:03 · 508 阅读 · 0 评论 -
14 # 泛型:泛型类与泛型约束
改造一个上一节说的 log 函数,让其打印出参数的 length 属性,这个时候就会提示我们类型。这时我们需要用到泛型约束这个概念,我们先定义一个接口,然后让。上不存在属性 length。静态成员不能引用类类型参数。泛型可以约束类的成员。原创 2024-01-18 20:37:40 · 478 阅读 · 0 评论 -
13 # 泛型:泛型函数与泛型接口
any 类型丢失了一些信息,也就是类型之间的约束关系,它忽略了输入类型跟返回类型必须是一致的,我们无法获知这种约束福安息,这个时候就需要用到泛型。上面这里仅仅约束了一个函数,还可以用泛型来约束接口的其它成员,这样接口的所有成员都受到了泛型变量的约束。很多时候我们希望一个函数或者一个类支持多种数据类型,有很大灵活性。如果不指定类型,也可以在接口的定义中,指定一个默认的类型。我们不仅可以用泛型来定义一个函数,还定义一个函数类型。希望这个函数支持字符串数组,应该如何实现?泛型还可以用在接口中。原创 2024-01-17 20:24:33 · 539 阅读 · 0 评论 -
12 # 类与接口的关系
接口处了继承接口之外,还可以继承类。这就相当于接口把类的成员都抽象了出来,只有类的成员结构,没有具体的实现。接口在抽离类的成员的时候,不仅抽离了公共成员,还抽离了私有成员和受保护成员。接口的继承可抽离出可重用的接口。也可以将多个接口合并成一个接口。接口可以像类一样,相互继承,并且一个接口可以继承多个接口。一个接口可以约束类成员有哪些属性以及它们的类型。原创 2024-01-16 20:20:36 · 498 阅读 · 0 评论 -
11 # 类:抽象类与多态
所谓多态,就是在父类中定义一个抽象方法,在多个子类中对这个方法有不同的实现,在程序运行的时候,会根据不同对象执行不同的操作,这样就是实现了运行时的绑定。在继承的时候,this 的类型也可以表现出多态,这里的多态是指 this 既可以是父类型,也可以是子类型。抽象类的好处就是可以抽离出一些事物的共性,有利于代码的复用和扩展,另外抽象类也可以实现多态。类的成员方法可以直接返回一个 this,这样就可以很方便的实现链式调用。抽象类是不允许被实例化的,只能被继承。原创 2024-01-15 20:15:47 · 454 阅读 · 0 评论 -
10 # 类:继承和成员修饰符
给构造函数添加 protected, 这个类不能被实例化,只能被继承,相当于声明了一个基类。构造函数的参数也可以添加修饰符,作用就是自动将参数变为实例的属性,可以省略在类中的定义。类的私有成员,只能在类的本身调用,不能被类的实例调用,也不能被子类调用。给构造函数添加 private, 这个类不能被实例化,也不能被继承。类的静态成员,只能通过类名来调用,不能被类的实例调用。受保护成员,只能在类的本身和子类中调用,不能被类的实例调用。只读属性,一定要被初始化,不能被修改。原创 2023-12-11 23:48:56 · 378 阅读 · 0 评论
分享