Disons que j'ai l'objet donné:
this._basketService.addFile({
id: file.id,
displayname: file.originalEntry['displayname'],
filesize: file.originalEntry['filesize'],
isarchived: file.originalEntry['isarchived'],
userId: this._appSession.user.id,
???: file.originalEntry // <=== How can I set the key value pair here?
});
et la méthode suivante:
export class BasketService {
addFile(file: File ) { //Some code here }
}
Alors j'appelle ma méthode comme ceci :
export interface File {
id: string;
displayname: string;
filesize: number;
isarchived: boolean;
userId: string;
[key: string]: any;
}
L'objet:
file.originalEntry est [clé: chaîne] . Je voudrais passer l'objet entier
au lieu de paires clé / valeur individuelles.
3 Réponses :
Essayez comme ceci:
this._basketService.addFile({
id: file.id,
displayname: file.originalEntry['displayname'],
filesize: file.originalEntry['filesize'],
isarchived: file.originalEntry['isarchived'],
userId: this._appSession.user.id,
keyValue: {key:file.id, value: file.originalEntry}
});
keyValue n'est pas une propriété de mon objet. export interface File {[key: string]: any} puisque la propriété n'a pas de nom, comment puis-je lui attribuer une valeur?
si la déclaration est comme ceci:
{ ID: key, Value: defaultValue }
vous pouvez définir sa valeur de cette manière:
this.dictionary = { ID: key, Value: defaultValue }; // key and defaultValue are variables
dans votre cas, passez ceci :
public dictionary: { [key: string]: string } = {};
Je l'ai résolu en mettant explicitement les paires clé / valeur dont j'avais besoin dans mon objet comme ceci:
const digitalObject = {
id: file.id,
displayname: file.originalEntry['displayname'],
filesize: file.originalEntry['filesize'],
isarchived: file.originalEntry['isarchived'],
userId: this._appSession.user.id,
code: file.originalEntry['code'],
needle: file.originalEntry['needle'],
x8: file.originalEntry['x8'][0],
x5: file.originalEntry['x5'][0],
8: file.originalEntry['8'][0],
5: file.originalEntry['5'][0],
creationtime: file.creationTime
};
this._basketService.addFile(digitalObject);
Merci pour toutes les contributions.
Copie possible de Comment puis-je ajouter un paire clé / valeur à un objet JavaScript?