TypeScript 中的装饰器

typescript 中的装饰器

typescript 中的装饰器是一项强大的功能,允许您添加元数据或修改类、方法、属性或参数的行为。它们经常用在 angular 等框架中来丰富组件和服务。无论您是初学者还是经验丰富的开发人员,本文都会指导您逐步创建自己的装饰器来增强您的 typescript 应用程序。

先决条件

开始之前,请确保您具备以下条件:

对 typescript 的基本了解。使用 tsconfig.json 文件中启用的 experimentaldecorators 选项配置的 typescript:

{  "compileroptions": {    "experimentaldecorators": true  }}

登录后复制

什么是装饰器?

装饰器是应用于类、方法、属性或参数的函数。在符号@前面,装饰器可以修改或丰富它所附加的元素。其主要用途包括:

添加元数据:用于提供有关类或属性的附加信息。修改行为:允许您动态更改方法或类的操作。注入依赖项:在模块化架构中实用。

创建组件装饰器

第 1 步:定义装饰器

我们将创建一个装饰器,将 componentname 属性添加到类中。

function component(name: string) {    return function (constructor: function) {        constructor.prototype.componentname = name;    };}

登录后复制

说明

该装饰器接收名称字符串并将其添加为类原型上的属性。此类的所有实例都可以访问此属性。

第2步:应用装饰器

让我们将装饰器应用到一个类中。

@component('moncomposant')class moncomposant {    constructor() {        console.log(`le nom du composant est : ${this.componentname}`);    }}

登录后复制

第三步:测试装饰器

让我们创建该类的一个实例来检查它是如何工作的。

const composant = new moncomposant(); // affiche : le nom du composant est : moncomposant

登录后复制

创建输入装饰器

第 1 步:定义输入装饰器

此装饰器监视并记录属性的更改。

function input() {    return function (target: any, propertykey: string) {        let value: any;        const getter = () => {            return value;        };        const setter = (newvalue: any) => {            console.log(`la valeur de ${propertykey} a été mise à jour : ${newvalue}`);            value = newvalue;        };        object.defineproperty(target, propertykey, {            get: getter,            set: setter,            enumerable: true,            configurable: true,        });    };}

登录后复制

说明

装饰器使用 object.defineproperty 来拦截对属性的更改。这允许您添加自定义逻辑,例如更改日志记录。

第 2 步:应用输入装饰器

让我们将其应用到属性上。

class moncomposant {    @input()    public nom: string;    constructor(nom: string) {        this.nom = nom;    }}

登录后复制

第 3 步:测试输入装饰器

更改属性观察效果。

const composant = new MonComposant('Composant Initial');composant.nom = 'Nouveau Composant'; // Affiche : La valeur de nom a été mise à jour : Nouveau Composant

登录后复制

结论

typescript 装饰器提供了一种优雅而强大的方式来向类和属性添加功能和元数据。通过阅读本文,您已学会:

创建组件装饰器来丰富类。实现输入装饰器来监视属性更改。

这些简单的示例展示了装饰器如何提高代码的可读性和可维护性。探索更多官方 typescript 文档以发现更高级的应用程序,例如通过 reflect.metadata 使用反射元数据。

以上就是TypeScript 中的装饰器的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2646787.html

(0)
上一篇 2025年3月7日 07:50:24
下一篇 2025年2月24日 11:25:50

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • pycharm如何引用js

    如何在 pycharm 中引用 javascript 简介 在 PyCharm 中引用 JavaScript 对于开发和维护包含 JavaScript 代码的 Web 应用程序至关重要。以下步骤将指导您如何将 JavaScript 引用添加…

    编程技术 2025年3月7日
    200
  • 掌握 TypeScript 的模式匹配:增强代码的功能和安全性

    typescript 的可区分联合是一个强大的功能,它将模式匹配提升到一个新的水平。它们使我们能够创建复杂的、类型安全的条件逻辑,而不仅仅是简单的 switch 语句。我在最近的项目中广泛使用了这种技术,它改变了我在 typescript …

    2025年3月7日
    200
  • 从 JavaScript 到 TypeScript:TypeScript 初学者指南

    如果您已经学习了 javascript,您可能想知道接下来要解决什么问题。有如此多的编程语言可供选择,做出决定可能会让人不知所措。但如果您一直在考虑提高 javascript 技能,那就不用再犹豫了——typescript 是一个很好的下一…

    2025年3月7日
    200
  • Heroku 中的 Playwright 和 Chrome 浏览器测试

    我一直喜欢观看我的单元测试运行(并通过)。它们速度很快,并且通过测试让我确信我的个人作品表现得像他们应该的那样。相反,我经常很难确定浏览器端到端测试的优先级,因为编写和运行它们的速度非常慢。 幸运的是,多年来,用于端到端浏览器内测试的工具已…

    2025年3月7日 编程技术
    200
  • 只是您的类型:在 JavaScript 和 TypeScript 上向右滑动

    目录: 简介素描类型检查功能团队合作经验教训后续步骤资源 介绍 web 开发有时感觉就像编码世界的狂野西部。有如此多的框架和库可供使用,通常会让人感到不知所措。如果你有这种感觉,我来这里是想告诉你,你并不孤单;你也有这种感觉。当我开始学徒期…

    2025年3月7日
    200
  • 不受欢迎的观点:TypeScript 被高估了(或者是吗?)

    打字稿。该工具承诺在 bug 潜入生产之前捕获它们。它被誉为开发者的游戏规则改变者,但让我们面对现实:并不是每个人都在使用 TypeScript。没关系。 TypeScript 真的是获得更好代码的金票,还是只是一个过度炒作的工具,增加了不…

    2025年3月7日
    200
  • typescript安装教程

    在 Node.js 上安装 TypeScript 的步骤:使用 npm 或 yarn 安装 TypeScript 全局包管理器。运行 tsc –version 验证安装。在 package.json 中添加脚本,以便在本地项目中…

    2025年3月7日
    200
  • typescript安装不了

    TypeScript 安装问题解决:确保系统环境满足要求并正确执行安装命令。具体步骤:1. 检查系统环境;2. 使用 npm 或 yarn 安装 TypeScript;3. 检查安装是否成功。常见安装问题:权限问题、网络问题、版本冲突等,可…

    2025年3月7日
    200
  • typescript安装错误

    问题:如何在 Windows 上安装 TypeScript?方法:安装 Node.js安装 TypeScript:npm install -g typescript验证安装:tsc –version TypeScript 安装错…

    2025年3月7日
    200
  • typescript安装包

    TypeScript 是 JavaScript 的强类型超集,安装步骤因操作系统和代码编辑器而异:Windows:访问 TypeScript 网站并运行安装程序。macOS:在终端中运行 “npm install -g type…

    2025年3月7日
    200

发表回复

登录后才能评论