我正在嘗試撰寫一個接受陣列陣列的函式。內部陣列可以包含任意數量的任意型別的元素,但第一個元素必須是字串。
以下是一個有效的輸入陣列:
[
['2022-03-04T00:00:00Z', 64, 10],
['2022-03-05T00:00:00Z', 61, 12],
['2022-03-06T00:00:00Z', 66, 14],
]
但以下不是有效輸入:
[
[0, '2022-03-04T00:00:00Z', 64, 10],
[1, '2022-03-05T00:00:00Z', 61, 12],
[2, '2022-03-06T00:00:00Z', 66, 14],
]
我嘗試了以下方法:
function formatDateLabels( array: [[string, ...any[]]] ){
...
}
但編譯器抱怨:
Argument of type '[[string, number, number], [string, number, number], [string, number, number]]' is not assignable to parameter of type '[[string, ...any[]]]'.
Source has 3 element(s) but target allows only 1.(2345)
如何正確宣告型別?
uj5u.com熱心網友回復:
該示例的[[string, ...any[]]]引數型別需要一個包含單個嵌套元組的元組,其中第一個值是字串,并且允許其后的任何其他條目型別。
應該將此型別更改為[string, ...any[]][]需要一個元組陣列,該陣列接受第一個值作為字串及其后的任何條目型別。
function formatDateLabels(array: [string, ...any[]][]){
// code
}
formatDateLabels([
['2022-03-04T00:00:00Z', 64, 10],
['2022-03-05T00:00:00Z', 61, 12],
['2022-03-06T00:00:00Z', 66, 14],
]);
游樂場鏈接。
uj5u.com熱心網友回復:
您可以為內部陣列創建自己的特定型別的介面。
例如,上面的值可以是一個字串,然后是另一個 any 型別的陣列,這樣您就可以保存無限數量的專案。
https://www.typescriptlang.org/docs/handbook/interfaces.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/475395.html
標籤:打字稿
上一篇:我想創建一個觀察屬性的函式,然后在屬性達到100時呼叫一個函式
下一篇:使用變數名訪問服務、模型、
