面向对象之 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...

发布于 学习笔记

TS 中的类型运算:联合类型

TS = JS + 类型系统 JS 可以对值进行加减运算,如果把 TS 的类型系统当作一门语言,TS 也同样可以对类型进行各种运算 联合类型(并集)英文全称:union types type A = { name: string } 表示 name 为 string 的所有对象但不要错误地认为这些对象只有 name 这一个 key比如对象 { na...

发布于 学习笔记

TypeScript 中的类型(下)

何时使用 enum 实例一:用 A.todo 将数字映射成一个有意义的语法 实例二:可以用于表示权限 以上代码中,Manage = Read | Write | Delete 是 JS 中的二进制操作(二进制或运算符),0b 在 JS 中表示二进制 何时用 enum 会显得很呆? 如上所示,将 'apple' 映射为 Fruit.apple 完全是多此一举,还...

发布于 学习笔记
1234

(●'◡'●)ノ♥