Cordova使用Typescript插入Ionic 1应用程序

Jbi*_*ird 6 angularjs typescript ionic-framework

我是Typescript的新手.我刚刚使用Typescript开始了一个Ionic 1.2.4(Angular)项目.转换时,Property 'Keyboard' does not exist on type 'CordovaPlugins'由于传递给angular.module.run()文件中的以下函数,我收到错误消息run.ts

///<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();
    }
  })
}
Run Code Online (Sandbox Code Playgroud)

实际上已经安装了cordova插件,它的类型定义文件肯定存在.这是文件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" />
Run Code Online (Sandbox Code Playgroud)

我也尝试直接在键盘中放置类型定义run.ts.///<reference path="../../typings/cordova/plugins/Keyboard.d.ts"/>

我不希望插件实际注册,因为'cordova.js'在应用程序构建/打包之前不可用.然而,我想知道如何让Typescript识别出Keyboard确实存在于cordova.pluginsvia类型defs上.否则,如何在转换过程中避免此错误?

Jbi*_*ird 11

安装打字稿定义时,我没有安装cordova-ionic."标准"cordova键盘插件与cordova-ionic键盘插件截然不同.

tsd install cordova-ionic --save 解决了这个问题.

哎呦.

  • [typings]的等效命令(https://github.com/typings/typings):`typings install dt~cordova-ionic --global --save` (3认同)