自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 TypeScript学习日志-第三十二天(infer关键字)

可以看出 已经推导出类型是。的作用就是推导泛型参数,

2024-05-22 20:38:53 301

原创 TypeScript学习日志-第三十一天(泛型工具二)

Record 约束对象的 Key 以及 Value,使用如下:key 的 value 可以是以上三个的随便一个 ,也支持嵌套操作,如下:获取函数类型的返回值,如图:

2024-05-22 20:38:27 257

原创 TypeScript学习日志-第三十天(泛型工具)

泛型工具是一组预定义的泛型工具和操作符,用于操作和转换类型。它们可以帮助我们编写更灵活、更通用的代码,并提高代码的可读性和可维护性。这里可以看到所有的属性都加上了?

2024-05-19 23:02:38 329

原创 TypeScript学习日志-第二十九天(协变 逆变 双向协变)

如果我们希望可以将上诉的错误都能通过,这时候就需要双向协变,双向协变需要在配置文件处将下面的字段修改即可使用。这时候的 name 和 age 就是鸭子类型。

2024-05-19 23:02:29 383

原创 TypeScript学习日志-第二十八天(类型守卫)

实现一个函数 函数可以传入任何类型 如果传入的是 object 则检查它的属性,如果里面的属性是number就取两位,如果是string就去除左右空格,如果是函数则执行。

2024-05-16 22:18:49 292

原创 TypeScript学习日志-第二十七天(TS进阶用法proxy & Reflect)

【代码】TypeScript学习日志-第二十七天(TS进阶用法proxy & Reflect)

2024-05-16 22:18:40 112

原创 TypeScript学习日志-第二十六天(weakMap,weakSet,set,map)

是被清除掉了 但是打印结果的时候有时还是会出现,这是因为 V8 的 GC 回收是需要一定时间的,为了避免这个问题 不允许读取键值,也不允许遍历,同理。都是弱项 弱引用 其键必须是引用类型,不能是其它类型 如果删除的引用类别 对应的。当我们将引用对象清除掉,这时候的。

2024-05-14 21:35:43 223

原创 TypeScript学习日志-第二十五天(编写发布订阅模式)

这是更具订阅模式写的代码 可以理解订阅模式的思想。

2024-05-14 21:35:33 232

原创 TypeScript学习日志-第二十三天(装饰器Decorator)

这时候打印出来的结果 还是一样的 只是少了最外层 当然 如果需要不止少一层就根据需求来进行修改。的构造函数,有了构造函数就不会去破坏其自身原有的结构,当我们。这时候我们就看到结果 打印出的 小明 了。这时候 我们打印出来的 还是 小明。这时候 我们就能直接拿到。这时候就能看到打印的。

2024-05-08 23:56:54 352

原创 TypeScript学习日志-第二十四天(webpack构建ts+vue3)

这个文件用于让ts识别.vue后缀的 后续会说。的启动服务和打包命名。这时候就能正常使用了。

2024-05-08 23:56:47 272

原创 TypeScript学习日志-第二十二天(Mixins混入)

【代码】TypeScript学习日志-第二十二天(Mixins混入)

2024-05-06 23:37:14 266

原创 TypeScript学习日志-第二十一天(声明文件d.ts)

指令来添加声明文件,这个是可行的,但是不是所有的第三方库都会有,这时候就要使用方法二了。我们可以看到 会提示没有找到声明文件,但是我们确实是要使用这个第三方库,那怎么办呢?这时候在查看 引用的文件 就没有提示了。手写一个声明文件,新建一个。按照上面的提示 使用。

2024-05-05 20:12:28 221

原创 TypeScript学习日志-第二十天(模块解析)

单纯使用 import 是不能在 方法里面的 它只能在最顶层,所以可以按上述写即可。前端模块化规范是有很多的,在es6模块化规范之前分别有一下的模块化规范。所谓分别导出 就是有多个需要导出的东西 使用多个。这时候打印出来的就是一个对象 { a:1 }默认导出的东西没有规定类型可以是任意类型,但是一个模块只能出现一个默认导出。都是浏览器下使用的规范。给重名的变量或方法重名。

2024-05-04 16:44:35 441

原创 TypeScript学习日志-第十九天(namespace命名空间)

它也必须需要导出才能访问。当我们出现两个同名的。

2024-05-04 15:28:19 505 1

原创 TypeScript学习日志-第十八天(tsconfig.json配置文件)

【代码】TypeScript学习日志-第十八天(tsconfig.json配置文件)

2024-05-02 23:15:36 514 1

原创 TypeScript学习日志-第十七天(泛型约束)

所以提示错误 ,不仅可以使用接口类型,还可以使用对象,这时候就要用到。

2024-05-02 23:15:16 281 1

原创 TypeScript学习日志-第十六天(泛型)

这样的话就能将上面的两个函数都代替了。

2024-04-30 22:41:47 75 1

原创 TypeScript学习日志-第十五天(生成器 | 迭代器)

我们可以看到 每一次的打印 执行的就是对应次数的内容 ,且 方法后面的。(对象不能使用 因为它没有 Symbol.iterator)但是我们想要对象也能使用迭代器有没有方法呢?而且我们一般这样使用,使用的都是它的语法糖 ——使用的是 数组/伪数组 里面的。和生成器是很像的 都是需要使用。的值指的是 是否还能继续迭代。打印出来的结果 也是正确的!调用方面 固定在后面接。

2024-04-30 22:41:33 203 1

原创 TypeScript学习日志-第十四天(symbol类型)

就会去创建一个 ,如果有的话就会直接拿来用, 这时候的 == 或 === 就会是。,如果我们想找到的是同一个 那要怎么办的,这就看第二点。我们可以看出 虽然有重复名成的属性,但是并不影响我使用。只能输入字符、数字以及undefined类型的值。如果我们出现了重复名称的属性,这时候就可以使用。这时候打印出来的结果都是。

2024-04-28 20:42:38 806 1

原创 TypeScript学习日志-第十三天(never类型)

当我们定义好了一个方法,且定义好了对应的类型,这时候别人来更改的时候,就会提示错了,这时候就体现出这个的有用性了。这时候需要的是又是字符又是数字的,这时候就不能正常实现,这时候就会被定义为。类型 只是没有返回值 本身不会出错 但是。

2024-04-28 20:42:19 341 1

原创 TypeScript学习日志-第十二天(类型推论|类型别名)

对于类型的级别 可以 查看第二天的学习,即可清楚类型等级了。我们可以使用类型别名,使用。不能写 联合类型,但是。给类型修改成其它名称。遇到同名的时候是合并,中是包含的意思,判断。

2024-04-26 22:46:38 396 1

原创 TypeScript学习日志-第十一天(枚举类型)

当我们有一个属性没有定义值的时候,就会提示错误。当然,你也可以自行设定值。声明对象的时候要遵循给这个规则。为字符串枚举成员生成反向映射。打印的结果就是 0 0。

2024-04-26 20:14:16 365 1

原创 TypeScript学习日志-第十天(元组类型)

元组就是数组的变种,元组是固定数量的不同类型的元素的组合,如图:二、越界元素当我们想给元组增加一个值,但是这个值是字符型,这时候就会提示错误信息,而这个增加的值就是越界元素,如图:其余和数组没有太大的区别 所以不再叙述。

2024-04-24 23:02:03 223

原创 TypeScript学习日志-第九天(抽象类)

1.abstract定义的方法都只能描述不能进行一个实现,如下:但是如果不实现的话,还是可以定义的,如下:2.抽象类无法被实例化,如图。

2024-04-24 21:17:42 286

原创 TypeScript学习日志-第八天(Class)

回顾上面的继承时使用的super()方法,为什么要写在上面,super()是初始化父类,要使用继承的父类,一定要先有父类才能有子类。修饰符 可以让你定义的变量被内、外部访问,当我们没有给属性写修饰符 则默认是。在讲类型约束前,先讲解以下Class的如何定义变量:在Ts中是不运行直接在。当我们一个子类想使用一个之前的类中出现过的方法的时候,我们就会想到继承。修饰符 让你定义的变量只能在内部和继承的子类中访问 不能被外部访问。这时候我们就可以劫持传进来的值,然后进行变化,输出的结果是。方法定义变量的 需要在。

2024-04-23 22:43:59 294 1

原创 TypeScript学习日志-第七天(内置对象)

我们可以这时候就可以forEach来遍历这个元素集合了。可以看到返回的已经是上面接收的类型了。当你不确定元素类型的时候就可以使用。Ts的使用可以直接定义为。来传入所需类型即可。

2024-04-21 19:19:25 180 1

原创 TypeScript学习日志-第六天(联合类型|交叉类型|类型断言)

这时候可以使用类型断言,但是类型断言后,执行的结果不一定是正确的,但是可以‘欺骗’编辑器。这时候尽管我们调用方法且传入的参数是数字型,运行也是不会报错的,当然我们可以在将。里面的属性都填写,当然,如果你使用了可选择的属性,那就不是必须了。因为使用了交叉类型,所以方法里面的参数必须要将。类型,这样也是不会报错的。

2024-04-21 18:20:58 712 1

原创 TypeScript学习日志-第五天(函数类型)

普通函数:箭头函数:函数默认值函数参数可选值。

2024-04-21 17:30:56 469 1

原创 TypeScript学习日志-第四天(数组类型)

因为使用结构赋值,将参数转换为了数组,所以方法的参数可以使用数组且将类型设置为any,这样在不确定参数类型的时候都是正确类型。当输入的是非数字类型的,则会报错。除了上面这种写法,还可以使用泛型的方式来进行定义,如:​​​​​​​​​​​​​​​​​​​​​。就用一个数字数组来进行展示吧,一个只能拥有数字类型的数组,如图:​​​​​​​。我们先定义一个对象接口,然后再定义数组即可,如下:​​​​​​​​​​​​​​。二维就是两个 [ ] [ ] 同理,三维就是 [ ][ ][ ]。

2024-04-18 22:48:17 199 1

原创 TypeScript学习日志-第三天(接口和对象类型)

Interface一般的使用都是结构体,何为结构体?即(建议 接口命名首字母大写 规范写法)当某个变量定义了是Interface类型的,且是结构体的,该变量需要和定义Interface类型结构一致,不能多也不能少,否则会报错,如下:当你写了两个同名的Interface时,它不会是取后者,而是两者结合,如下:当我们不知道数据结构时,我们可以使用索引签名的方式来定义,这时候我们就可以根据索引的类型来自行增加属性,如下:我们就增加了sex、a、b这三个属性了,且这三个属性的键一定是字符串类型,但是值是任意类型。当

2024-04-17 22:43:38 327

原创 TypeScript学习日志-第二天(任意类型)

Object和object以及{}的区别。

2024-04-16 23:18:47 319

原创 TypeScript学习日志-第一天(基础类型)

这里的报错是因为开启了严格模式,关闭严格模式需要配置。

2024-04-15 23:37:37 226 1

原创 Vue3.x学习日记—— new Vue() 和createApp()的差别

在Vue2.x版本中,我们实例一个Vue都是使用new Vue()这种方法,特别是下面这种写法,在脚手架中也是非常常见的。但是在我们学习Vue3.x版本的时候,我们会发现,创建实例的方法变了,变成了createApp()这种方法,常见的代码如下作为一名程序员,就会产生一个疑问,为什么要改变创建实例的方法呢,单纯看代码,也没有什么大的改变,是哪里有改变呢?接下来我就用一个案例来展示一下有一些什么改变。

2023-03-05 18:08:29 3340 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除