【问题标题】:How to use the native android widgets type definitions in nativescript?如何在 nativescript 中使用原生 android 小部件类型定义?
【发布时间】:2017-03-28 20:55:20
【问题描述】:

我通过添加"tns-platform-declarations": "^2.5.2"安装了平台定义但是,当我使用tns-platform-declarations/android.d.ts 中的定义时,我无法访问API 的某些部分。比如我无法访问android.support.design.widget.Snackbar

  private snackbar: android.support.design.widget.Snackbar;

因为 'android.support' 没有导出的成员 'design' 我错过了什么?当我完成代码时,我只得到'android.v4'并且v4不包含“设计”模块。

我也尝试过按照某人的建议直接使用“app”对象导入:

  import * as app from 'application';
  private snackbar = app.android.support.design.widget.Snackbar;
  // error: 'application' has no member 'android'

通过以上,我得到了代码完成,但android 和 tsc 下的红色波浪将无法编译。

我发现的唯一替代方法类似于 solution,这并不是真正的解决方案,因为我也可以这样作弊:

declare var android:any;

我如何实际使用 TS 定义来编译并获得代码补全?

【问题讨论】:

  • 有点无关紧要,但是,我玩弄了一下 nativescipt,虽然它是一个很棒的项目,但我敢打赌,将它与你想要的所有功能一起使用,可能更像是一个比单独学习 Java 和 Swift 并使用它们更令人头疼。
  • 作为参考,这里有一个使用 TypeScript 原生 Android API 的示例:github.com/bradmartin/nativescript-snackbar/blob/master/… 我基本上是想弄清楚为什么在这种情况下智能感知对我来说是坏的。
  • 有一个用于android sdk的实验类型定义生成工具,以及项目中使用的android支持库。使用--androidTypings 标志进行构建/运行,以便为您生成 d.ts'。它们应该包含您在平台声明中找不到的类,因为它们是针对您项目中使用的版本生成的。
  • 哦,太好了,谢谢!今天试一试,结果会更新。
  • --androidTypings 完全有效!把它作为一个答案,这样我就可以给你积分!

标签: javascript java android typescript nativescript


【解决方案1】:

有一个用于 android sdk 的实验性类型定义生成工具,以及项目中使用的 android 支持库。使用--androidTypings 标志进行构建/运行,以便为您生成 d.ts'。

那些应该包含您在平台声明中找不到的类,因为它们是根据您项目中使用的版本生成的。

tns build android --androidTypings

【讨论】:

    猜你喜欢
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2019-03-20
    • 2015-03-21
    • 2018-06-28
    • 2012-11-20
    相关资源
    最近更新 更多