簡體   English   中英

Typescript 將 JS 數組視為 object

[英]Typescript treat JS array as object

我有一個 js function 輸出一個包含 3 個數字的數組。 我能否定義一個類型/接口/將數組視為 object 的任何內容。

這樣Somethig.GetVector().X轉譯成Something.GetVector()[0]

不,TypeScript 轉譯不能那樣工作。

可以定義擴展數組的 TypeScript 接口:

interface ExtArr extends Array<string> {
  extProp?: string
}

const a: ExtArr = ['foo', 'bar', 'baz']
a.extProp = 'quux'

然而,類型信息轉變成一無所有——它只被 TypeScript 使用,而不是 JavaScript。

或者,您可以定義一個 function 將數組轉換為具有友好屬性名稱的 object。 聽起來這可能是您想要的用例:

const makeFriendly = (unfriendlyArray: string[] /* or whatever type */) => {
  const [ propName1, propName2, propName3 ] = unfriendlyArray

  return { propName1, propName2, propName3 }
}

makeFriendly(['foo', 'bar', 'baz']) // { propName1: "foo", propName2: "bar", propName3: "baz" }

暫無
暫無

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

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