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.ts
Plugin 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?
Lệnh tương đương cho [typings] (https://github.com/typings/typings): 'typings install dt ~ cordova-ionic --global --save' – rinogo