簡體   English   中英

如何為Typescript中的方法接受arguments的類型

[英]How to make a type for arguments accepted by the method in Typescript

我有一個方法,其結構如下所示。

const a = function (...args: any[]) {
  console.log(args);
}

正如您在 function 的結構中看到的那樣, args的類型是any[] ,我想為該方法接受的參數數組創建一個特定類型。 如何使 Typescript 中的方法接受 arguments 的特定類型? 注意:function a可以接受任何類型的參數,例如a(1, 2, 4, 5, 'asgasg', 124.52, { name: 'sparsh' });

我想為 Typescript 中的方法接受的 arguments 創建一個特定類型。

您可以創建自定義類型:

type x = string | number

在適合您的示例的情況下:

type User = {
  name: string;
}

type x = string | number | User;

function a(...args: x[]){}

可以使用unknown[]代替any[] ,它允許任何屬性訪問,包括可能無效的屬性。
使用unknown[]將允許傳遞任何類型的 arguments,但不會禁用屬性訪問等的類型檢查。例如:

const a = function (...args: unknown[]) {
  console.log(args);
// console.log(args[0].toString); //disallowed by type checking 
  if(typeof args[0] === 'number') console.log(args[0].toFixed()) //allowed
}

a(2,3,4,5,6,7,"asds"); //ok 

暫無
暫無

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

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