TypeScript Academy · Oppitunti

Tyypitettyjen pakettien julkaiseminen

Julkaiskaa kirjastoja ensiluokkaisilla tyypityksillä: tuottakaa .d.ts-tiedostot tsc:llä, osoittakaa package.json niihin, käsitelkää ESM/CJS-viennit ja testatkaa ennen julkaisua.

Oppitunti 2/28 vaihetta

Tyypitettyjen pakettien julkaiseminen on ilmainen TypeScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/2. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu TypeScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. TypeScript Academy-kurssilla on yhteensä 2 oppituntia.

Johdanto

Tavoite: Julkaiskaa paketti, jossa on vankat tyypitykset. Tuotatte .d.ts-tiedostot, määritätte package.json-tiedoston oikein, tuette ESM:ää ja CJS:ää exports-määrityksen avulla ja varmistatte toiminnan esimerkkisovelluksessa komennolla tsc --noEmit.

  • Määritysten tuottaminen
  • types-kentän osoittaminen (tai exports-määritys jokaiselle vientipisteelle)
  • Testaus ennen julkaisua

Määritysten tuottaminen

Ottakaa declaration käyttöön, jotta .d.ts-tiedostot tuotetaan. Käyttäkää erillistä koontiasetusta, jotta sovelluksen tsconfig pysyy tiukkana ja selkeänä.

// tsconfig.build.json
{
  "compilerOptions": {
    "target": "ES2020",
    "module": "ESNext",
    "declaration": true,
    "emitDeclarationOnly": false,
    "outDir": "dist",
    "rootDir": "src",
    "stripInternal": true
  },
  "include": ["src/**/*"]
}

package.json types/exports

Osoittakaa types juuritason määritystiedostoon. Sisällyttäkää alireittivienneissä types-merkintä, jotta editorit löytävät moduulikohtaiset .d.ts-tiedostot.

// package.json
{
  "name": "@acme/widgets",
  "version": "1.0.0",
  "type": "module",
  "main": "./dist/index.cjs",
  "module": "./dist/index.js",
  "types": "./dist/index.d.ts",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js",
      "require": "./dist/index.cjs"
    },
    "./utils": {
      "types": "./dist/utils.d.ts",
      "import": "./dist/utils.js",
      "require": "./dist/utils.cjs"
    }
  }
}

Lähdekoodi vs .d.ts

Varmistakaa, että julkinen API:nne on tyypitetty hyvin. Määritykset peilaavat lähdekoodin allekirjoituksia, joten käyttäjät saavat automaattisen täydennyksen ja tarkistuksen.

// src/index.ts
export interface Widget { id: string; name: string }
export function greet(w: Widget): string { return `Hello, ${w.name}` }

// dist/index.d.ts (emitted)
export interface Widget { id: string; name: string }
export declare function greet(w: Widget): string

Testaus käyttäjäprojektissa

Testatkaa ennen julkaisua pienessä käyttäjäprojektissa komennolla tsc --noEmit. Virheellisen käytön pitäisi tuottaa asianmukaiset virheet.

// consumer/tsconfig.json
{
  "compilerOptions": { "strict": true, "target": "ES2020", "module": "ESNext" },
  "include": ["./src"]
}

// consumer/src/app.ts
import { greet } from "@acme/widgets"

// Type checks in the consumer
console.log(greet({ id: "w1", name: "Ada" }))
// @ts-expect-error: missing name
// console.log(greet({ id: "w1" }))

Vinkkejä ja sudenkuoppia

Vinkkejä:

  • Suosikaa alireittien exports-määrityksiä ja kullekin vientipisteelle määritettyä types-kenttää.
  • Jättäkää sisäiset tyypit viemättä tai merkitkää ne @internal-merkinnällä.
  • Käyttäkää prepare-skriptiä koontiin ennen komentoa npm publish.

Julkaistavien tyyppien tarkistus

Pikatarkistus: Mikä on vähimmäismääritys tyyppien tarjoamiseksi oikein?

Kertaus

Kertaus: Tuottakaa määritykset komennolla tsc, määrittäkää package.json (types/exports) oikein ja varmistakaa toiminta käyttäjäsovelluksessa ennen julkaisua.

Aloita maksutta

Opi TypeScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
101
Oppitunnit
352

Usein kysytyt kysymykset

Onko oppitunti ”Tyypitettyjen pakettien julkaiseminen” ilmainen?

Kyllä – oppitunnin ”Tyypitettyjen pakettien julkaiseminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko TypeScript Academy-kurssin, päivitä CoddyKit PROhon. TypeScript Academy-kurssilla on yhteensä 2 oppituntia.

Mitä opin oppitunnilla ”Tyypitettyjen pakettien julkaiseminen”?

Julkaiskaa kirjastoja ensiluokkaisilla tyypityksillä: tuottakaa .d.ts-tiedostot tsc:llä, osoittakaa package.json niihin, käsitelkää ESM/CJS-viennit ja testatkaa ennen julkaisua. Harjoittelet TypeScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni TypeScript Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin TypeScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/2.

Kuinka kauan ”Tyypitettyjen pakettien julkaiseminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä TypeScript Academy-oppitunnilla?

Kyllä. Jokainen TypeScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. .d.ts-tiedostojen perusteet; export type ja export
  2. Tyypitettyjen pakettien julkaiseminen
← Takaisin: TypeScript Academy