Summernote es un plugin de jQuery, y no necesito definiciones de tipo para él. Sólo quiero modificar el objeto, pero TS sigue lanzando errores. La línea de abajo me sigue dando: "Property 'summernote' does not exist on type 'jQueryStatic'." error.
(function ($) {
/* tslint:disable */
delete $.summernote.options.keyMap.pc.TAB;
delete $.summernote.options.keyMap.mac.TAB;
/* tslint:enable */
})(jQuery)
Edit:
Aquí está mi tsconfig.json
{
"compilerOptions": {
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es5",
"allowJs": true,
"noUnusedParameters": true
},
"include": [
"js/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
Puede utilizar /* tslint:disable-next-line */
para desactivar localmente tslint. Sin embargo, como se trata de un error del compilador, deshabilitar tslint puede no ayudar.
Siempre puede cambiar temporalmente $
por any
:
delete ($ as any).summernote.options.keyMap.pc.TAB
que le permitirá acceder a cualquier propiedad que desee.
Edición: A partir de Typescript 2.6, ahora puedes evitar un error/advertencia del compilador para una línea específica:
if (false) {
// @ts-ignore: Unreachable code error
console.log("hello");
}
Tenga en cuenta que la documentación oficial "recomienda usar [esto] con mucha moderación". Es casi siempre preferible usar any
en su lugar, ya que expresa mejor la intención.
De forma similar a esta respuesta, puedes anular la definición de tipo JQueryStatic
para incluir la propiedad summernote
.
interface JQueryStatic {
// Opt out of type-checking summernote using the any type
// See https://www.typescriptlang.org/docs/handbook/basic-types.html#any
summernote: any
}
(function ($) {
delete $.summernote.options.keyMap.pc.TAB;
delete $.summernote.options.keyMap.mac.TAB;
})(jQuery)