簡體   English   中英

從具有鍵和值的界面創建 object - typescript

[英]Create an object from interface with keys and values - typescript

有什么方法可以基於使用相同鍵和值的接口創建 object 嗎?

例如。 我有以下界面:

interface Person {
  name: string;
  age: number;
}

我想生成一個 object,如下所示:

const personFieldNames = {
  name: "name",
  age: "age",
};

您不能從接口創建 object,因為類型僅在編譯時存在,但是您可以使用typeof從 object 創建類型。

const person = {
  name: 'name',
  age: 0
}

type Person = typeof person

const john: Person = {
  name: 'john',
  age: 20
}

您不能遍歷Interface的屬性,因為它們僅用於編譯時。 但是您可以做的是從您的Interface創建一個 object 並循環其properties

interface Person {
  name: string;
  age: number;
}

const personFieldNames: Person = {
  name: "name",
  age: 123,
};

let newObject = {};

Object.keys(personFieldNames)
.forEach(key => {
    newObject = {... newObject, [key] : key};
})

console.log(newObject);

Output:

[LOG]: {
  "name": "name",
  "age": "age"
} 

或者你可以使用這里ts-transformer-key

暫無
暫無

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

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