2017-04-01 73 views
4

我正在用Typescript開發Angular 2項目。我希望能夠使用select2,並且我沒有看到任何穩定的功能豐富的插件相當於select2。但是我在DefinitelyTyped項目中遇到了types/select2。我不知道如何在我的項目中使用它們。我也找不到其他DefinitelyTyped庫的例子。我對TS和Angular 2都很陌生。有人能提供關於我應該如何使用它的指導嗎?如何在Angular 2項目中使用types/select2?

我知道我可以使用我的package.json包含庫,但不知道如何在組件中使用。

+0

看看這個鏈接是否可以幫助你https://embed.plnkr.co/gHZKfFbTuTJY8lX5BG7o/ – Diullei

+0

你的例子似乎直接使用jQuery庫。感謝您設置Plunkr。我正在尋找如何使用DefinitelyTyped中的types/select2。還有一些其他庫可能會在稍後使用。所以尋找正確的方式... – TechCrunch

回答

4

通過安裝@ types/select2,它允許打字稿編譯器執行靜態類型檢查,以確保正確調用Select2庫。它不會改變您使用select2的方式 - 您仍然需要安裝Select2庫,並按照原樣使用它,而無需進行類型檢查。

對於外部依賴(如jQuery或Select2),您應該安裝其相應的類型定義文件,以便打印機編譯器可以在編譯時解析外部類型。這是優於聲明一個any類型(即declare var $: any

確保安裝jQuery的類型以及:

npm install @types/jquery 

這將安裝node_modules/@types/jQuery下的類型定義。默認情況下,打字稿編譯器將解析node_modules/@types文件夾中的類型。

對於TypeScript NodeJS包,您可以生成類型定義文件作爲編譯步驟的一部分,並在package.json文件的typings屬性中指定index.d.ts。在這種情況下,您不一定需要將類型定義導出到node_modules/@types

+0

因此,類型/ 僅用於類型檢查,他們不提供任何jQuery插件的集成,以便與Angular 2輕鬆使用? – TechCrunch

+0

是的,它僅用於類型檢查。 – pixelbits

+0

Angular2使用模塊加載器。任何使用模塊加載器的庫都可以使用'package'方式來指定類型定義文件。像jQuery和Select2這樣的庫使用傳統的加載文件的方式 - 通過'index.html'中的'script'標記。這就是爲什麼引用類型定義文件有點不同。 – pixelbits

0

我也有類似的問題,並通過導入固定它:

import 'select2'; 

我早前已安裝:

npm install select2 --save 

一旦你做到了這一點,你可以使用這個庫通過jQuery的作爲通常。