2016-04-25 22 views
1

我正在爲TS中的Nativescript寫一個插件。我遵循this指南來引用我想要使用的android java SDK。從本質上講,要定位一個庫的平臺特定的API,你必須調用它們相對於它們的gradle導入值 - 就像這樣。如何強制「invalid」Typescript直接編譯成JS?

在我的TS,我有以下行:

var mClient = new com.Microsoft.azure.MobileServiceClient(); 

,我相信應該是罰款,儘管錯誤,但不幸的是,它是造成tsc失敗 -

nsAzure.android.ts(7,27): error TS2304: Cannot find name 'com'

如何我是否可以將其轉換爲js並繼續構建,並且理想情況下不會向我的日誌中吐出錯誤或警告?

+0

你可以試試 「VAR COM =窗口[」 COM 「];」 – TSV

回答

2

如果你真的只是想保持沉默的錯誤:

declare var com: any; 
var mClient = new com.Microsoft.azure.MobileServiceClient(); 

理想情況下,你會得到,雖然描述com一個.d.ts文件。

+0

有沒有一個輕量級的'.d.ts'文件,我可以讓沉默的錯誤?我真的不喜歡改變我的文件中的代碼來沉默編譯器的想法,但我不知道如何在定義文件中描述com,因爲它引用了java api? –

+0

您可以將'declare var com:any;'放在.d.ts文件中,例如myTypes.d.ts,然後在.ts文件中用'/// '引用它。我對NativeScript一無所知,但如果您使用TypeScript對其進行編碼,那麼API肯定可以在.d.ts文件中建模爲真實,然後您將從TypeScript的類型檢查中受益。 TypeScript手冊有一個[編寫.d.ts文件的指南](https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html) – Alan