Är DefinitelyTyped lämpligt för nya TypeScript-definitioner?


Enligt https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/:

DefinitelyTyped kommer fortfarande att vara platsen för att skapa nya deklarationsfiler.

Men det är oklart varför vi skulle skapa nya definitioner på DefinitelyTyped istället för att skicka in dem direkt till NPM.

Eftersom DT är så stort nu, verkar det kontraproduktivt att fortsätta lägga till till det repoet. Vilka är fördelarna med DT jämfört med att publicera direkt till NPM?

Svar #1

DefinitivelyTyped-repot behandlas som det godkända communityförrådet för typdeklarationer för paket som inte tillhandahåller sina egna.

Att svara på denna fråga beror på vad du menar när du säger

skicka in dem direkt till NPM.

Om du menar att inkludera .d.ts-filen med paketet som .d.ts-filen motsvarar, är det rekommenderat. Paketet moment, till exempel, inkluderar och underhåller sin egen deklarationsfil.

Om du menar att tillhandahålla ditt eget typbara paket så är DefinitelyTyped den bättre platsen för dessa filer och kommer att ge vissa fördelar. Genom att inkludera din fil i DefinitelyTyped kommer den att

  • dra nytta av automatiska distributioner till @types-namnområdet av TS-typningsboten.

    • vilket också kommer att ge förutsägbar modulupplösning i kompilatorn.
  • vara i den länge etablerade källan för typningar. Du kommer att vara där folk letar.
  • mer lätt underhållen av andra.

    • paketet kommer att vara lättare att hitta
    • underhållare kommer att använda ett arbetsflöde och format som de är bekanta med

Svar #2

För att lägga till på Paarths svar, att finnas i DefinitelyTyped ger extra fördelar som du bör överväga:

  • Automatiska versionstaggar för äldre TypeScript-språkversoner. Om du levererar din definitionsfil i ditt eget paket, måste du och dina användare komma överens om vilken version av TypeScript som ska användas. Om den finns på DefinitelyTyped, när du uppdaterar definitionsfilen, kommer @types-utgivaren automatiskt att tagga den senaste kompatibla releasen för äldre TS-versioner (t.ex. människor på TS 2.1 kan npm install @types/[email för att få en 2.1-kompatibel version)
  • Gratis underhåll från DefinitelyTyped-underhållarna. Ofta kan DT hitta fel i definitionsfiler genom att skriva nya TSLint-regler och tillämpa dem över hela kodbasen
  • Bättre versionshantering - du kan på ett enklare sätt tillhandahålla sid-vid-sid-definitioner för flera versioner av ditt bibliotek och versionera dessa oberoende av det underliggande biblioteket

Relaterade artiklar