2017-03-28 16 views
1

我通過添加"tns-platform-declarations": "^2.5.2"來安裝平臺定義但是,當我使用tns-platform-declarations/android.d.ts中的定義時,我無法訪問API的某些部分。舉例來說,我不能訪問android.support.design.widget.Snackbar如何在nativescript中使用本機android小部件類型定義?

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

因爲「android.support」沒有出口成員「設計」我缺少什麼?當我完成代碼時,我只獲得'android.v4',而v4不包含「設計」模塊。

我也嘗試直接使用「應用程序」對象導入正如有人提出:

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定義來編譯並獲得代碼完成?

+0

的種類無關,但是,我與nativescipt了一下週圍的玩弄,雖然它是一項偉大的工程,我敢打賭說,使用它與所有你想要的功能,很可能更多的是比單獨學習Java和Swift並使用它們頭疼。 – Pytth

+0

僅供參考,以下是使用TypeScript原生Android API的示例:https://github.com/bradmartin/nativescript-snackbar/blob/master/snackbar.android.ts我基本上試圖弄清楚爲什麼intellisense是在這種情況下爲我破碎。 – FlavorScape

+2

有一個用於android sdk的實驗類型定義生成工具,以及項目中使用的android支持庫。使用'--androidTypings'標誌建立/運行爲您生成d.ts'。它們應該包含在平臺聲明中找不到的類,因爲它們是針對項目中使用的版本生成的。 – pkanev

回答

2

有一個用於android sdk的實驗類型定義生成工具,以及項目中使用的android支持庫。使用--androidTypings標誌執行編譯/運行,爲您生成d.ts。

這些應該包含在平臺聲明中找不到的類,因爲它們是針對項目中使用的版本生成的。

tns build android --androidTypings

相關問題