2016-01-15 9 views
7

Ich bin neu in Typescript. Ich habe gerade ein Ionic 1.2.4 (Angular) Projekt mit Typescript gestartet. Wenn transpiling, erhalte ich die Fehlermeldung Property 'Keyboard' does not exist on type 'CordovaPlugins' aufgrund der folgenden Funktion angular.module.run() in einer Datei übergeben run.tsCordova Plugins in Ionic 1 App mit Typoskript

///<reference path="../../typings/tsd.d.ts"/> 

export function onRun($ionicPlatform) { 
    $ionicPlatform.ready(function() { 
    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) { 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
     cordova.plugins.Keyboard.disableScroll(true); 
    } 
    if (window.StatusBar) { 
     StatusBar.styleDefault(); 
    } 
    }) 
} 

Das cordova Plugin tatsächlich installiert ist, und es ist Typ-Definitionsdatei existiert auf jeden Fall. Hier ist die Datei tsd.d.ts.

/// <reference path="angularjs/angular.d.ts" /> 
/// <reference path="cordova/cordova.d.ts" /> 
/// <reference path="cordova/plugins/BatteryStatus.d.ts" /> 
/// <reference path="cordova/plugins/Camera.d.ts" /> 
/// <reference path="cordova/plugins/Contacts.d.ts" /> 
/// <reference path="cordova/plugins/Device.d.ts" /> 
/// <reference path="cordova/plugins/DeviceMotion.d.ts" /> 
/// <reference path="cordova/plugins/DeviceOrientation.d.ts" /> 
/// <reference path="cordova/plugins/Dialogs.d.ts" /> 
/// <reference path="cordova/plugins/FileSystem.d.ts" /> 
/// <reference path="cordova/plugins/FileTransfer.d.ts" /> 
/// <reference path="cordova/plugins/Globalization.d.ts" /> 
/// <reference path="cordova/plugins/InAppBrowser.d.ts" /> 
/// <reference path="cordova/plugins/Keyboard.d.ts" /> 
/// <reference path="cordova/plugins/Media.d.ts" /> 
/// <reference path="cordova/plugins/MediaCapture.d.ts" /> 
/// <reference path="cordova/plugins/NetworkInformation.d.ts" /> 
/// <reference path="cordova/plugins/Push.d.ts" /> 
/// <reference path="cordova/plugins/Splashscreen.d.ts" /> 
/// <reference path="cordova/plugins/StatusBar.d.ts" /> 
/// <reference path="cordova/plugins/Vibration.d.ts" /> 
/// <reference path="cordova/plugins/WebSQL.d.ts" /> 
/// <reference path="ionic/ionic.d.ts" /> 
/// <reference path="jquery/jquery.d.ts" /> 

Ich habe versucht, auch direkt in run.ts die Typdefinition für Tastatur platzieren. ///<reference path="../../typings/cordova/plugins/Keyboard.d.ts"/>

Ich erwarte nicht, dass das Plugin sich tatsächlich registriert, weil 'cordova.js' erst verfügbar ist, wenn die App gebaut/gepackt wurde. Ich würde jedoch gerne wissen, wie Typescript zu erkennen, dass Keyboard tatsächlich auf cordova.plugins über Typ Defs existiert. Wie kann ich sonst diesen Fehler während der Transpilation vermeiden?

Antwort

11

Bei der Installation von Typoskript-Definitionen habe ich cordova-ionic nicht installiert. Das "Standard" cordova Keyboard Plugin unterscheidet sich von dem cordova-ionic Keyboard Plugin.

das Problem behoben.

Whoops.

+2

Äquivalenter Befehl für [typings] (https://github.com/typings/typings): 'types install dt ~ cordova-ionic --global --save' – rinogo

Verwandte Themen