簡體   English   中英

從元組評估函數的參數類型

[英]Assessing a Function's Argument Types From Tuple

我正在嘗試使用元組類型作為 function 參數的類型。

type T_a = (a1: string, a2: number) => boolean
const a: T_a = (a1, a2) => a1.length >= a2

type T_b_arguments = [number, string]
type T_b = (...T_b_arguments) => boolean
const b: T_b = (b1, b2) => b1 < b2.length

// Example:
b(1, 'mystring) // true

Typescript 操場

我怎樣才能做到這一點?

函數的形式參數定義為parameter_name后跟可選類型注釋。 namename: type annotation

如果未指定類型注釋並且無法推斷出任何類型,則參數將具有類型any

對於 rest 參數,寫為...parameter ,如果沒有指定類型注釋並且無法推斷出任何類型,則...parameter將具有類型any[]

因此,在

type T_b = (...T_b_arguments) => boolean

T_b_arguments不是指類型,而是any[]類型的 rest 參數的名稱

要更正此問題,您必須命名參數並應用類型注釋T_b_arguments

type T_b = (...args: T_b_arguments) => boolean

請注意, ...語法不適用於參數類型,而是適用於參數名稱。

這是完整的工作代碼

type T_a = (a1: string, a2: number) => boolean
const a: T_a = (a1, a2) => a1.length >= a2

type T_b_arguments = [number, string]
type T_b = (...args: T_b_arguments) => boolean
const b: T_b = (b1, b2) => b1 < b2.length

b(1, 'mystring') // true

游樂場鏈接

暫無
暫無

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

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