sabado resultados primitiva premios jueves gordo euromillones comprobar bonoloto javascript webstorm

javascript - primitiva - resultados bonoloto



El valor asignado a la primitiva se perderĂ¡. (2)

Me enfrenté a un problema similar con la directiva angular personalizada.

debajo estaba mi directiva personalizada:

function customDirective() { return { scope: { model: ''='' } link: function(scope) { scope.resetModel = function() { scope.model.name = null; //In these lines I was getting the above scope.model.email = null; //mentioned warning in webstorm. } } } }

Después de revisar los documentos de $ compile , decidí usar el siguiente código que resuelve esta advertencia y funciona bien con el enlace a los ámbitos primarios y secundarios, sí, por supuesto, a menos que su modelo sea una referencia de objeto.

function customDirective() { return { scope: { model:''<'' // Please refer the above linked angular docs for in detail explanation. } link: function(scope) { scope.resetModel = function() { scope.model.name = null; scope.model.email = null; } } } }

Si tengo una matriz de objetos y los recorro asignando un atributo a cada uno, WebStorm me advierte:

Los valores asignados a la primitiva se perderán.

Sin embargo, al realizar pruebas en la consola, no "pierdo" ningún valor.

Esto solo sucede cuando el bucle está dentro de una función.

Un ejemplo de este error a continuación:

let people = [ { name: ''Foo'', age: 21, surname: ''FooBar'' }, { name: ''Bar'', age: 51, surname: ''FooBar'' } ];

Sin envoltura de función:

people.forEach(function (person) { person.surname = ''Baz''; // No error. Works in console. });

Con envoltura de función:

function changeSurname(people) { people.forEach(function (person) { person.surname = ''Baz''; // Error warning me that value assigned to primitive will be lost. }); } changeSurname(people);

Ambos producen la misma salida en la consola (el apellido se cambia a ''baz'').

Supongo que esto tiene algo que ver con la referencia del objeto y lo person señala la person , pero no estoy seguro de qué es exactamente.

¿Por qué veo este error?

¿De qué error potencial está tratando de salvarme WebStorm?


No hay nada inapropiado en su código, la inferencia de tipos de WebStorm se confunde un poco (este aspecto de JavaScript es particularmente confuso).

Su linter ve una cadena y asume que intentará algo como esto:

var primitive = "september"; primitive.vowels = 3; primitive.vowels; // => undefined

Lo que llevaría a un valor ''perdido''.

El hecho de que solo detecte este ''error'' dentro de una función parece ser un error absoluto que debe informarse.

Para entender mejor esta parte extraña de JavaScript, recomiendo el excelente artículo en profundidad de Angus Croll here .