2016-07-18 22 views
42

ile @types kullanmalıdır mevcut projemi @types ile çalışmaya mı dönüştürüyorum?nasıl nasıl yapayım typescript Şimdiye kadar <strong>tsd</strong> ya da (bunun daha iyi bir sürümü) <strong>typings</p> <p></strong> Fakat şimdi bu typescript 2 yeni <code>@types</code> imkanı vermektedir kullanılan 2

Tüm bağımlılıklarla birlikte tsd.json (typings.json bazı durumlarda) sahibim, TypeScript 2'ye geçiş yapmak için gereken adımlar nelerdir? yeni en iyi uygulamalar hangileridir? @types belirli sürümleri destekliyor mu?

Teşekkürler!

cevap

44

Çok basit. Sadece ihtiyacınız olan tanımları npm ile kurun. o hemen projenizde kullanabilirsiniz yüklü

npm install --save @types/lodash 

kez Örneğin:

sen yapabileceğiniz lodash gerekiyorsa. Typescript, varsayılan olarak node_modules/@ types klasöründen kurulu @types paketinin yazımlarını çözecektir. Artık tsd.json veya typings.json dosyasına gerek yoktur.

Ek puan:

  • paket versiyonu ile uyumlu olmalıdır UÖM'sine @types paketinin büyük ve küçük versiyonu.
  • Burada türleri arayabilirsiniz: http://microsoft.github.io/TypeSearch/
  • typeRoots and types here hakkında bilgi edinin. Özellikle bu iki noktaya dikkat edin: typeRoots tsconfig.json belirtilen
    • , o zaman sadece belirtilen klasörler tipi kökleri için kullanılacaktır. Bu, belirtmediğiniz sürece ./npm_modules/@types/'u hariç tutacaktır.
    • typestsconfig.json'da belirtilmişse, yalnızca belirtilen paketler dahil edilecektir.

daha blog post here içinde okuyun.

+0

'dt ~ ***' sözdizimi nedir? –

+0

@Royi @ türleri için bu sözdizimini hiç görmedim - sadece [yazarak] (https://github.com/typings/typings/blob/master/docs/tsd.md). Kesinlikle yazılan tanımların [otomatik olarak @types] yayınlandığını düşündüm (https://github.com/DefinitelyTyped/DefinitelyTyped#faq). Bunun hakkında daha fazla bilgin var mı? –

+0

Zaten onu buldum. [İşte buyrun] (http://stackoverflow.com/questions/40734991/whats-the-difference-from-installing-type-definition-files-using-typings-vs-npm). –

3

Sadece npm paketler gibi görünüyor, destekli olanları da here bulabilirsiniz.

tscnode_modules klasör herhangi türde almak olacaktır.

Sen package.json yılında typings.json sahip olduğunuz bağımlılıkları taşıyabilirsiniz (çok tabii isimlerini değiştirmek şartıyla).

here ile ilgili daha fazla bilgiyi buradan edinebilirsiniz.

38

typescript 2.0 önceki typings sistem kurtulur: Sorun yaşamaya sadece 4 saat önce ... sabit alıyorsanız.
Şimdi Typescript 2.0 varsayılan olarak ./node_modules/@types'a bakmalı ve ayrı düğüm modülleri olarak taktığınız türleri almalısınız, örn. yeni türleri yüklemez geçerli sürüm typescript 2.0 beta, bir hata vardır

(@ David Sherret tarafından belirtildiği gibi) npm install --save @types/react. Elle cmd new tsc dosyaları derler, ancak VS 2015'te IntelliSense desteği yoktur ve .ts dosyası düzenleme modundayken hiçbir hata gösterilmez.

benzer ayarlarla tsconfig.json değiştirmek çözmek için: Benim için

{ 
    "compilerOptions": { 
    // ... other config rows 
    "typeRoots": [ "node_modules/@types/" ], 
    "types": [ "jquery", "react", "react-dom", /*... your other types */ ], 
    } 
} 

manuel "types" beyan yardımcı diğer çocuklar "typeRoots" için, bu sorunu çözmüş yardımcı oldu. Umarım, geliştiricinin çalışma saatlerini kaydeder.

+0

"typeRoots" benim için çalıştı, teşekkürler! Kök sorunu benim tsconfig.json dosya benim projeler alt klasöründe idi. Ben de ekledim: '" typeRoots ": [" ../node_modules/@types/ "]' –

+0

Yukarıdaki sorun düzeltildi ve şimdi typescript yeni türlerini doğrudan './Node_modules/@ types''dan yükler. –