Могу ли я построить этот объект машинописи динамически? - PullRequest
0 голосов
/ 10 марта 2020

Вот объект, которым я хотел бы быть динамически c. Как я могу это сделать? Я хочу добавить больше полей, когда это необходимо.

request = {
      header:{
        consumingAppId:"USER",
        userTypeCd : "S",
        instanceId : "QA",
      },
      userInfo:{
         firstName: "John",
         lastName: "Doe"
      }
}

1 Ответ

0 голосов
/ 11 марта 2020

Если вы заранее знаете возможные свойства, вы можете создать интерфейс с ними. Любые необязательные свойства можно использовать ?.

interface MyRequest {
  header: {
    consumingAppId: string,
    userTypeCd: string,
    instanceId: string,
  },
  userInfo: {
    firstName: string,
    lastName: string,
    nickName?: string, // example of an optional property on the userInfo object
  },
  metadata?: { // this entire metadata object can be left off
    id: number; // but if metadata exists, it must have an id
    price?: number;
  }
}

const request: MyRequest = {
  header: {
    consumingAppId: "USER",
    userTypeCd : "S",
    instanceId : "QA",
  },
  userInfo: {
    firstName: "John",
    lastName: "Doe"
  }
}

request.userInfo.nickName = 'scar face'; // legal
request.userInfo.favoriteColor = 'blue'; // illegal, because there's no favoriteColor in the type

Для получения дополнительной информации см. документацию по дополнительным свойствам .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...