Npm @types org paketlerindeki TypeScript yazmaları


135

Yazma paketleri içeren, ancak üzerinde herhangi bir belge bulamayan bir npm organization @types olduğunu fark ettim . Bunlar nasıl kullanılacak?

Yazı araçlarıyla kullanılması mı gerekiyor ? Öyleyse, nasıl kurulur? Örneğin, bir @types/openlayerspaket var, ama typings search npm:openlayershiçbir şey döndürmüyor.

Daktilo aracından ayrı olarak mı kullanılması gerekiyor? Örn. Doğrudan kurulu npmmu?


11
Bu soru için teşekkürler.
Léon Pelletier

Yanıtlar:


109

Typescript 2.0 itibariyle typings artık gereklidir. Npm kuruluşu, bir geliştiriciler ekibi oluşturan bir kuruluştur. Microsoft'un @types kuruluşunu npm'de kurduğuna ve TypeScript geliştirici ekibini kuruluşa eklediğine inanıyorum. @Types organizasyonu altında yer alan paketler, belgelere göre türlü yayıncı aracı kullanılarak DefinitelyTyped'den otomatik olarak yayınlanır .

Ayrıca types, paketlerinize eklemenin başka bir yolu var :

Paketinizde. Json

Paketinizin bir ana .jsdosyası varsa, dosyanızdaki ana bildirim dosyasını da belirtmeniz gerekir package.json. typesÖzelliği, paketlenmiş bildirim dosyanıza işaret edecek şekilde ayarlayın . Örneğin:

{
    "name": "awesome",
    "author": "Vandelay Industries",
    "version": "1.0.0",
    "main": "./lib/main.js",
    "types": "./lib/main.d.ts"
}

Not "typings"alan ile eş anlamlıdır "types"ve sıra kullanılabilir.

Ayrıca, ana bildirim dosyanız adlandırılmış index.d.tsve paketin kökünde (yanında index.js) yaşıyorsa, "types"özelliği işaretlemenize gerek olmadığını unutmayın .

Arama türleri ile ilgili

Çoğunlukla, tür bildirimi paketleri her zaman npm'de paket adıyla aynı ada sahip olmalı, ancak @ types / ile ön eke sahip olmalıdır, ancak gerekirse paketi bulmak için https://aka.ms/types adresine bakabilirsiniz. En sevdiğiniz kitaplık için.

Gönderen - http://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html

Ama bunu yaptığımda npm search @types/openlayershiçbir sonuç alamadım. Ama web arayüzünden arama yapmak bana sonuçları döndürdü. Yani sanırım npm searchorganizasyonlar arasında arama yapmıyor.


Mükemmel cevap! Küçük düzenlemeler iyi olurdu, ancak bu mevcut durumu açıklamaktan çok daha iyi bir iş çıkarır.
Ronald Zarīts

Mülkünüz package.jsonaltında tek bir dosya belirttiğiniz için types, paketlenmiş bildirim dosyasından bahsettiğinizi fark ettim . Yudum gibi otomatik bir inşa sisteminde bunu başarmanın en kolay yolu ne olurdu?
Nicky

"main"Ana dizin index.js ise alanı eklemem gerekir mi?
Knu

2
Bunun için çok teşekkürler " "typings"Alanın eş anlamlı olduğunu "types"ve aynı zamanda kullanılabileceğini unutmayın"
Serhii Popov

42

TypeScript blogundaki duyuru buna cevap veriyor: Beyan Dosyalarının Geleceği

Özet:

@typesNPM kurum tip tanımları elde etmek içindir npm. Bu tür tanımları kullanmak, TypeScript 2.0'da gelen bir özelliktir.

Bu, yazımlar ve tsd gibi mevcut projelerin / araçların yerini alacaktır , ancak bunlar bir süre daha desteklenmeye devam edecektir.


1
Hey Ron, Yani bu kurulumu almaya çalışıyorum, ama VSCode onları yüklediğimi fark ediyor gibi görünmüyor. core-jsW / gibi bir şey kullandıktan sonra npm i @types/core-js --saveklasörde olduğunu görebiliyorum, ancak proje hala şeyler için hatalar atıyor. Yapmam gereken başka bir şey var mı? Tsconfig dosyasının @types veya başka bir şeyden haberdar olmasına izin vermem gerekir mi? Sean'ın dediği gibi, henüz türler için hiçbir belge yok :(
Mark Pieszak - Trilon.io

@MarkPieszak VSCode TS2.0 kullandığınızdan emin olmalısınız. TypeScript'i yerel olarak nasıl yükleyeceğinizi ve VSCode'da nasıl kullanacağınızı buradan görebilirsiniz: github.com/Microsoft/TypeScript/wiki/Nightly-drops
nino.porcino

Evet bu @ nino.porcino teşekkür ederim :) tsdk2.0beta TS yüklemesine işaret edilmesi gerekiyordu
Mark Pieszak - Trilon.io 15:16

en azından güncellediğimiz bazı takım projeleri için (ve ayrıca gördüğümüz diğer GH projelerinde) , bu modül adlarını listeleyen tsconfig.jsonbir "types"dizi özelliğiyle de güncellenmelidir , örn."types": ["core-js"]
superjos

7

Bu, Typcript 2.0'da sunulan bir özellik olacak. Bu, UMD Modülleri / Kütüphaneleri ve ilgili tanımları için tip desteği sağlar.

Bkz ( Dahili UMD modül tanımları için destek ), ortam typings ile halen konuların daha iyi anlamak için.


Teşekkür ederim! Bu yararlıdır, ancak @types npm org tartışırken GitHub sorununu görmüyorum. @Types org özellikle UMD /// <referencesenaryosu için mi? TypeScript derleyicisi otomatik olarak altındaki türleri arayacak mı node_modules/@types( node_modulesne zaman modül ararken 'moduleResolution': 'node')? Bu ne anlama geliyor typings- aynı zamanda ortam bağımlılıklarını da ele alıyor. Herhangi bir şekilde ilgili mi?
Ronald Zarīts
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.