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.
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 (taiexports-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 komentoanpm 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.
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
- .d.ts-tiedostojen perusteet; export type ja export
- Tyypitettyjen pakettien julkaiseminen