前言
TypeScript的参数装饰器是一项强大的功能,它允许开发者在函数或方法的参数上应用装饰器函数,以自定义参数的行为和特性。与类装饰器一样,参数装饰器提供了更高级别的元编程能力,让您可以更精细地控制函数的输入参数。
参数装饰器的应用场景多种多样。一种常见的用途是参数验证和数据转换。通过在函数参数上应用装饰器,您可以检查参数是否符合特定的规范,或者将参数从一种格式转换为另一种格式,从而提高代码的可靠性和可维护性。这对于构建健壮的应用程序非常有帮助。
另一个常见的应用是依赖注入。参数装饰器可以用于将依赖项注入到函数或方法中,这在编写可测试和可扩展的代码时非常有用。
总之,TypeScript的参数装饰器为开发者提供了更多的控制权和灵活性,可以用于解决各种不同的问题,并提高了代码的可读性和可维护性。这个功能通常与其他装饰器一起使用,以实现更复杂的逻辑和功能。
参数装饰器
参数装饰器写在一个参数声明之前(紧靠着参数声明)
参数装饰器表达式会在运行时当作函数被调用,会自动传入下列 3 个参数:
- 对于静态成员来说是当前的类,对于实例成员是当前实例
- 参数所在的方法名称
- 参数在参数列表中的索引
实例成员:
function test(target: any, proptyName: string, index: number) { console.log(target); console.log(proptyName); console.log(index); } class Person { say(age: number, @test name: string): void { } }
静态成员:
function test(target: any, proptyName: string, index: number) { console.log(target); console.log(proptyName); console.log(index); } class Person { say(age: number, name: string): void { } static hi(@test val: string) { } }
无案例🐤
其它题外话
属性装饰器, 参数装饰器最常见的应用场景就是配合
元数据(reflect-metadata)
在不改变原有结构的同时添加一些额外的信息 但是元数据目前也是在提案中, 也还没有纳入正式的标准 所以对于装饰器而言, 我们只需要了解即可 因为提案中的所有内容将来都是有可能被修改的 因为提案中的所有内容目前都有兼容性的问题最后
本期结束咱们下次再见👋~
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗