浅尝类型体操

基本原理if(A <= B)if(A <= B) true else false 123type A = 1;type B = 1 | 2;type Result = A extends B ? true : false; // true if(A <= B) and (C <= D)1234567891011type A =...

发布于 学习笔记

面向对象之 class(下)

四种成员可见性public(类外可见)public 修饰的属性或方法是公有的,可以在任何地方被访问到,默认所有的属性和方法都是 public private(类内可见)private 修饰的属性或方法是私有的,不能在声明它的类的外部访问 protected(子类可见)protected 修饰的属性或方法是受保护的,它和 private 类似,区别是它在子类中也是允许被访问的 #var(真私有...

发布于 学习笔记

面向对象之 class(上)

思考题:写入属性时会覆盖共有属性吗?12345678910111213141516171819function Person(name, age) { this.name = name this.age = age}Person.prototype = { constructor: Person, sayHi(target) { cons...

发布于 学习笔记

面向对象之原型

用 JS 造一个小兵1234567891011121314const 近战兵 = { 兵种: "近战", 血量: 1488, 物理攻击力: 60, 护甲: 180, 金钱: 42, 补刀奖励: 16, 出生: function () {/* 出生动画 */}, 死亡: function () {/* 死亡动画 */&...

发布于 学习笔记

泛型编程(下)

本文介绍了一些 TS 内置工具类型的用法及实现 Readonly & Mutable123456789101112131415161718192021type Person = { id: number; name: string; age: number };type MyReadonly<T> = { readonly [K in ke...

发布于 学习笔记

泛型编程(上)

泛型就像函数函数 12const f = (a, b) => a + bconst result = f(1, 2) // 3 泛型 12type F<A, B> = A | Btype Result = F<string, number> // string | number 泛型就像函数 函数的本质是什么 函数的本质是推后执行的、部分待定的代码 12...

发布于 学习笔记

深入函数:函数重载、this 和 as const

函数重载(overload)重载允许一个函数在接受不同数量或类型的参数时,作出不同的处理 1234567891011121314151617function createDate(n: number): Date;function createDate(year: number, month: number, date: number): Date;// 中间不能写其他代码,函数类型声明后面...

发布于 学习笔记

深入函数:声明、参数、返回值

深入对象语法描述对象的属性使用接口描述对象 12345678type Person = { name: string}// 或者interface Person { name: string} Person 的子集为 12345678910type Children = | { name: string, age: string &#...

发布于 学习笔记

类型兼容与赋值

为什么要有类型兼容因为实际工作中,往往无法做到类型一致 比如在上面的 JS 代码中,假设 runTask 函数的参数只接受具有 a、b、c 这 3 个 key 的对象,但在一般情况下,即使我们多传一个 d,也不会报错 你有的,我都有,则我能代替你;y 有的,x 都有,则 x 兼容 y 简单类型的兼容类型小的兼容类型大的 注意:图中的大小圆应当是包含关系,即小圆应该在大圆内部,此处为...

发布于 学习笔记

TS 中的类型运算:交叉类型

交叉类型(交集)英文全称:intersection types 12type A = string & number;// ^-- never 交叉类型一般多用于对象,而不用于简单类型 123456type 有左手的人 = { left: string }const b = { left: 'yse', right: &#x...

发布于 学习笔记

(●'◡'●)ノ♥