#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-йоссариан идеальный ответ! Спасибо за ваше решение