簡體   English   中英

Typescript 數字還是數字枚舉類型?

[英]Typescript number or numeric enum type?

我正在嘗試像這樣創建 function:

function test_func(arg1: number: NumericEnum) {
    return number / 2 + 5;
}

其中 arg1 可以是數值或定義為 integer 的枚舉值,如下所示:

enum Num {
   x = 1;
   y = 2;
}

這樣 function 可以是test_func(1)test_func(Num.x)

有沒有辦法為arg1的類型定義定義這樣的類型?

Num這樣的數字枚舉的值已經是number ,所以你不需要做任何特別的事情來包含它們。 我們可以說我們的 function 取任意number Num.x只是解析為數字文字1的屬性訪問器,因此可以使用 Num.x 調用此Num.x

function test_func(arg1: number) {
    return arg1 / 2 + 5;
}

enum Num {
   x = 1,
   y = 2,
}

test_func(1)
test_func(Num.x)

Typescript 游樂場鏈接

一些變化:

  • 枚舉使用逗號,而不是分號;
  • test_func中的變量是arg1而不是number number是類型。

您必須以這種方式編寫枚舉。

enum NumericEnum {
   x = 1,
   y = 2
}

現在,下面的 function 可以接收數字或枚舉作為參數。

test_func(arg1: number | NumericEnum) {
    return arg1 / 2 + 5;
}

檢查我在stackblitz的實現。

暫無
暫無

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

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