2016-01-15 47 views
7

Tôi mới sử dụng Typecript. Tôi vừa mới bắt đầu một dự án Ionic 1.2.4 (Angular) bằng cách sử dụng Typecript. Khi transpiling, tôi nhận được thông báo lỗi Property 'Keyboard' does not exist on type 'CordovaPlugins' do hàm sau truyền cho angular.module.run() trong một file run.tsPlugin Cordova trong ứng dụng Ionic 1 sử dụng Typescript

///<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(); 
    } 
    }) 
} 

Plugin cordova được trên thực tế cài đặt và nó loại tập tin định nghĩa chắc chắn tồn tại. Đây là tập tin 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" /> 

Tôi cũng đã cố gắng đặt các định nghĩa kiểu cho bàn phím trực tiếp trong run.ts. ///<reference path="../../typings/cordova/plugins/Keyboard.d.ts"/>

Tôi không mong plugin thực sự đăng ký vì 'cordova.js' không khả dụng cho đến khi ứng dụng được tạo/đóng gói. Tuy nhiên tôi muốn biết làm thế nào để có được Typecript để nhận ra rằng Keyboard hiện trên thực tế tồn tại trên cordova.plugins thông qua loại defs. Nếu không, làm thế nào tôi có thể tránh được lỗi này trong quá trình transpilation?

Trả lời

11

Khi cài đặt định nghĩa bản ghi, tôi không cài đặt cordova-ionic. Các "tiêu chuẩn" cordova Keyboard plugin là khác biệt với các plugin bàn phím cordova-ion.

tsd install cordova-ionic --save khắc phục sự cố.

Rất tiếc.

+2

Lệnh tương đương cho [typings] (https://github.com/typings/typings): 'typings install dt ~ cordova-ionic --global --save' – rinogo

Các vấn đề liên quan