Как получить доступ к объектной переменной с пробелами в ней? Typescript

#typescript #mapping

#typescript #сопоставление

Вопрос:

Итак, у меня есть входящий объект, который выглядит следующим образом:

 Email: "edwardmuldrew@gmail.com"
ID: "106150111352875619571"
Image URL: "https://lh3.googleusercontent.com/a-/AOh14Gi8zfXDXbMG_kvgmIs2yYiAGbuplyapc0gyjXqpTA=s96-c"
Name: "Edward Muldrew"
 
 

Который я пытаюсь сопоставить с моим объектом User

 export class User {
    constructor(
        public ID: string,
        public Name: string,
        public Image_URL: string,
        public Email: string,
    ) { }
}
      

      var obj = localStorage.getItem('user') || '{}';
      this.user = JSON.parse(obj);
 

Все отображается нормально, за исключением ссылки URL-адреса изображения, поскольку в этой переменной есть пробел. Это находится в файле typescript, и я не уверен, как получить к нему доступ.
Я пытался использовать

 obj['Image URL']
 

Но это не сработало. Любые другие решения?

Ответ №1:

Здесь у вас есть:

 const obj = {
  Email: "edwardmuldrew@gmail.com",
  ID: "106150111352875619571",
  ['Image URL']: "https://lh3.googleusercontent.com/a-/AOh14Gi8zfXDXbMG_kvgmIs2yYiAGbuplyapc0gyjXqpTA=s96-c",
  Name: "Edward Muldrew",

}

type Obj = typeof obj

export class User implements Obj {
  public ID: string;
  public Name: string;
  public ['Image URL']: string;
  public Email: string;
  constructor(
    id: string,
    name: string,
    imageUrl: string,
    email: string,

  ) {
    this.ID = id;
    this.Name = name;
    this['Image URL'] = imageUrl;
    this.Email = email

  }
}

const foo = new User('1', 'John', 'http://example.com/data/index.png', 'sdf@gmai.com')
var result = foo['Image URL'] // string
 

Комментарии:

1. @captrain-йоссариан идеальный ответ! Спасибо за ваше решение