Tengo la siguiente función que está configurando un complemento select2, que necesita selecciones para permanecer abiertas si son múltiples pero cerradas si no lo son:
function setUpSelects($selects, closeOnSelect) { $selects.each((i, item) => { const $item = $(item); $item.select2({ closeOnSelect: closeOnSelect, // <-- error on this line minimumResultsForSearch: Infinity, placeholder: $item.data('placeholder') || $item.attr('placeholder'), }); }); } setUpSelects($('select:not([multiple])'), false); setUpSelects($('select[multiple]'), true);Sin embargo, cuando intento ejecutar este código, el verificador de eslint me da un error (en la línea que se muestra arriba) de:
error Propiedad esperada taquigrafía objeto-taquigrafía
Realicé una búsqueda y leí los documentos, pero no muestra cómo debe usar una variable y la respuesta no aceptada en esta pregunta parece pensar que puede ser un error en eslint (aunque no he encontrado evidencia para respaldar eso )
¿Hay alguna manera de hacer que esto funcione o debo deshabilitar la regla para esa línea?
Un extracto de eslint sobre el tema:
Requerir sintaxis de taquigrafía literal de objeto (objeto-taquigrafía): detalles de la regla
Esta regla impone el uso de la sintaxis abreviada. Esto se aplica a todos los métodos (incluidos los generadores) definidos en los objetos literales y cualquier propiedad definida donde el nombre de la clave coincida con el nombre de la variable asignada.
Cambio
closeOnSelect: closeOnSelectpara sólo
closeOnSelectEsta regla comprueba que se utiliza la sintaxis abreviada literal de objeto, por ejemplo, {a, b} en lugar de {a: a, b: b} . La regla es configurable, ver opciones para más detalles.
A pesar de que esta sintaxis abreviada es conveniente, en algunos casos es posible que no desee forzar su uso. Puede deshabilitar el cheque en su configuración:
// .eslintrc.json { "rules": { // Disables the rule. You can just remove it, // if it is not enabled by a parent config. "object-shorthand": 0 } }En el caso de TSLint hay una opción diferente:
// tslint.json { "rules": { // Disables the rule. You can just remove it, // if it is not enabled by a parent config. "object-literal-shorthand": false } }Quiere definir Objeto con claves y no puede usar ninguna. Prueba esto.
Mapa de interfaz { [clave: cadena]: cadena | indefinido }
const HUMAN_MAP: Map = { draft: "Draft", } export const human = (str: string) => HUMAN_MAP[str] || str