2017-04-25 2 views
1

Summernote ist ein jQuery-Plugin, und ich brauche keine Typdefinitionen dafür. Ich möchte nur das Objekt ändern, aber TS wirft Fehler. Die Zeile unten gibt mir immer noch: "Property 'summernote' existiert nicht auf den Typ 'jQueryStatic'." Fehler.Wie kann man eine ts-Regel für eine bestimmte Zeile deaktivieren?

(function ($) { 

    /* tslint:disable */ 
    delete $.summernote.options.keyMap.pc.TAB; 
    delete $.summernote.options.keyMap.mac.TAB; 
    /* tslint:enable */ 

})(jQuery) 

Edit:

Hier mein tsconfig.json ist

{ 
    "compilerOptions": { 
    "outDir": "./dist/", 
    "sourceMap": true, 
    "noImplicitAny": true, 
    "module": "commonjs", 
    "target": "es5", 
    "allowJs": true, 
    "noUnusedParameters": true 
    }, 
    "include": [ 
     "js/**/*" 
    ], 
    "exclude": [ 
     "node_modules", 
     "**/*.spec.ts" 
    ] 
} 

Antwort

4

Sie können /* tslint:disable-next-line */ verwenden, um tslint lokal zu deaktivieren. Da dies jedoch ein Compilerfehler ist, kann die Deaktivierung von tslint nicht helfen.

Sie können jederzeit werfen vorübergehend $ zu any:

delete (<any>$).summernote.options.keyMap.pc.TAB 

die es Ihnen erlaubt den Zugriff auf was auch immer Eigenschaften, die Sie wollen.

+0

Dies ist das einzige, was am Ende funktioniert hat. Vielen Dank! – Amir

0

Ähnlich this answer, können Sie die JQueryStatic Typdefinition überschreiben die summernote Eigenschaft aufzunehmen.

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) 
+0

Ich habe das gefunden, bevor ich meine Frage gestellt habe, aber das hat auch nicht funktioniert. Es ist so, als ob JQueryStatic trotz der Deklaration nicht erweitert wird. – Amir

+0

Dies waren die Schritte, die ich unternommen habe, um meine Antwort zu testen: * Installieren Sie TypeScript global - 'npm installieren -g typescript' * Führen Sie in einem neuen Verzeichnis' npm init -y' aus, um ein 'package.json' zu erstellen * Installiere JQuery - 'npm installiere jquery --save' * Installiere JQuery Type Definitionen -' npm install @ types/jquery --save-dev' * Erstelle eine Standard 'tsconfig.json' Datei -' tsc --init' * Erstellen Sie eine TypeScript-Datei - 'touch index.ts' * Fügen Sie den Inhalt meiner Antwort in' index.ts' * Führen Sie 'TSC index.ts' - TypeScript kompiliert die Datei erfolgreich @[email protected] könnten Sie bitte mehr teilen Ihrer TypScript-Konfiguration? – macklinu

Verwandte Themen