【发布时间】: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