簡體   English   中英

Typescript 裝飾器參數

[英]Typescript decorators parameters

我想了解 Typescript 裝飾器的不同參數是什么。

 function myDecorator(target) { // do something with 'target'... }

在上面的示例中,我知道 target 表示裝飾器附加到的函數/類,但是裝飾器的其他參數是什么,它們的含義是一個命令,我還想獲得一個官方文檔的鏈接來指定這個。

提前致謝。

裝飾器需要一個參數,它裝飾的目標和更多 arguments 取決於目標的類型,例如

方法裝飾器

方法裝飾器的表達式在運行時將被稱為 function,其中包含以下三個 arguments:

  • static 成員的 class 的構造函數 function 或成員實例的 ZA2F2ED4F8EBC2CBBD4C21 的原型
  • 成員的姓名。
  • 成員的屬性描述符。

您可以在TypeScript 裝飾器上找到所有裝飾器類型的完整列表:

  • Class 裝飾器

    • 僅針對 class
  • 方法裝飾器

    • static 成員的 class 的構造函數 function 或成員的實例 ZA2F2ED4F8EBC2CBBDZC21 的原型
    • 會員姓名,
    • 成員的屬性描述符
  • 訪問器裝飾器

    • static 成員的 class 的構造函數 function 或成員實例的 ZA2F2ED4F8EBC2CBBD4C21 的原型
    • 成員的姓名。
    • 成員的屬性描述符。
  • 物業裝飾師

    • static 成員的 class 的構造函數 function 或成員實例的 ZA2F2ED4F8EBC2CBBD4C21 的原型
    • 成員的姓名。
  • 參數裝飾器

    • static 成員的 class 的構造函數 function 或成員實例的 ZA2F2ED4F8EBC2CBBD4C21 的原型
    • 成員的姓名。
    • 函數參數列表中參數的序號索引。

此外:

如果我們想自定義如何將裝飾器應用於聲明,我們可以編寫一個裝飾器工廠。 裝飾器工廠只是一個 function ,它返回將由裝飾器在運行時調用的表達式。

[ TypeScript 裝飾器]

您可以根據需要創建帶有參數的裝飾器工廠。 它們不受限制或指定。

TypeScript 文檔中的示例。

裝飾師:

function sealed(target) {
  // do something with 'target' ...
}

適用於

@sealed x

裝飾廠:

function color(value: string) {
  // this is the decorator factory
  return function (target) {
    // this is the decorator
    // do something with 'target' and 'value'...
  };
}

應用為

@color('blue') x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM