He aquí un fragmento en el que creo una instancia de un nuevo content objeto en mi servicio:

const newContent = new Content(
     result.obj.name
     result.obj.user.firstName,
     result.obj._id,
     result.obj.user._id,
);

El problema es que esta forma de creación de instancias de objeto se basa en el orden de las propiedades de mi content modelo. Me preguntaba si hay una manera de hacerlo es mediante la asignación de cada propiedad para que el valor que desea establecer, por ejemplo:

 const newContent = new Content(
     name: result.obj.name,
     user: result.obj.user.
     content_id: result.obj._id,
     user_id: result.obj.user._id,
 );
InformationsquelleAutor YSA | 2017-04-10

2 Comentarios

  1. 16
    const newContent = <Content>({
        name: result.obj.name,
        user: result.obj.user.
        content_id: result.obj._id,
        user_id: result.obj.user._id,
     });

    Aquí usted puede crear instancias de un objeto y tipo de uso de la afirmación o de la fundición para el tipo de Contenido.
    Para obtener más información sobre el tipo de afirmación: https://www.typescriptlang.org/docs/handbook/basic-types.html#type-assertions

    • Está claro lo que ha cambiado, pero sería útil a decir por qué. Momentos de enseñanza en todas partes.
    • Esto es realmente muy muy mal! No eres una instancia de Content aquí, usted está creando un objeto simple que tiene los mismos miembros. Si, por ejemplo, Content tendría un método fn, a continuación, en su ejemplo de esto se producirá: newContent.fn().
    • esta respuesta va a funcionar si usted extender el prototipo del objeto así: const newContent = <Content>(_.extend({...}, Content.prototype));
  2. 7

    Se puede pasar un objeto al constructor que se ajusta a todas aquellas variables:

    type ContentData = {
        name: string;
        user: string;
        content_id: string;
        user_id: string;
    }
    
    class Content {
        constructor(data: ContentData) {
            ...
        }
    }

    Y luego:

    const newContent = new Content({
         name: result.obj.name,
         user: result.obj.user.
         content_id: result.obj._id,
         user_id: result.obj.user._id,
    });

Dejar respuesta

Please enter your comment!
Please enter your name here