[玩转 typescript 系列]学习笔记

每日必须进步的typescript

ansible要研究,但是永远忘记不了要想做更多的事情,必须让自己成为一个typescript专家。还是继续研究一下装饰器怎么用。

  • 今天发现一个有趣的事情,言语无法表达,上代码
const arr1: (string | number)[] = [1, 2, 'one', 'two']
console.log(arr1.filter(t => typeof t === "number")) // [1, 2]
console.log(arr1.filter(t => typeof t === "string")) // ["one", "two"]
  • 今天还认识了一个有类似Python的对象乘数字得到多个对象的方法,叫repeat
const str1 = "123"
const str2 = str1.repeat(3) // "123123123"
  • typescript中的类对象都有个prototype属性,他运行你为该对象添加属性或方法。
  • 装饰器分4种,分别可以用于类、属性、方法、参数。
  • 类装饰器定义:类装饰器是指接受一个类构造函数作为参数的函数,并且返回undefined、参数中提供的构造函数或一个新的构造函数。返回undefined等哦他嗯用返回参数中提供的构造函数。
  • 类装饰器其实就是用来修改该类的构造函数。如果装饰器函数返回undefined,那么类仍然使用原来的构造函数。如果装饰器有返回值,那么这个返回值会覆盖类原来的构造函数。
  • 方法装饰器的定义:方法装饰器函数是一个接受三个参数的函数:包含这个属性的对象、属性名(一个字符串或一个符号),和一个可选参数(属性的描述对象)。这个函数会返回undefined、参数里提供的属性描述对象或一个新的属性描述对象。返回undefined等同于返回参数里提供的属性描述对象。
  • 方法装饰器用来覆盖类的方法,如果方法装饰器返回的不是undefined,那么返回值将会覆盖方法的属性描述对象。所以属性描述符是什么呢,就是顾名思义描述属性的。我就大概记得一个属性,有是否可修改的属性,是否可以被for…in…扫描的属性,还有一个是属性的名字,等等,这些都是缺省true。
  • 属性装饰器函数是一个接受两个参数的函数:包含了这个属性的对象和这个属性的属性名(一个字符串或一个符号)。不会返回一个属性描述对象。
  • 参数装饰器: 参数装饰器函数是一个接受三个参数的函数:一个包含了被装饰函数参数的方法的对象、方法的名字和参数在参数列表中的索引。这个装饰器的返回值将会被忽略。

你可能感兴趣的:(typescript,学习,javascript)