Δημοσίευση Typescript στο NPM χωρίς JS
Πώς να δημοσιεύσω το αρχείο μου *.ts στο NPM που περιέχει μόνο ορισμούς τύπων και διεπαφών;
Δεν υπάρχει εξαγόμενη συνάρτηση JavaScript, αντικείμενο κ.λπ.
Πρέπει να το διαγράψω; "main": "index.js", -ή- να αντικαταστήσω με "main": "dist/types.ts",
Πρέπει να μεταγλωττίσω τα *.ts σε *.d.ts;
Το types.js:
export type Optional<T> = T|null|undefined
export type OptionalOrFalse<T> = Optional<T|false>
export type SingleOrArray<T> = T|T[]
export type DeepArray<T> = (T|DeepArray<T>)[] // === T[] | T[][] | T[][][] | ...
export type SingleOrDeepArray<T> = T|DeepArray<T> // === T | T[] | T[][] | T[][][] | ...
export type Factory<T> = () => T
export type ProductOrFactory<T> = T|Factory<T>
export type ProductOrFactoryDeepArray<T> = (ProductOrFactory<T> | ProductOrFactoryDeepArray<T>)[] // === T[]|F[] | T[][]|F[][] | T[][][]|F[][][] | ...
export type ProductOrFactoryOrDeepArray<T> = ProductOrFactory<T> | ProductOrFactoryDeepArray<T> // === T|F | T[]|F[] | T[][]|F[][] | T[][][]|F[][][] | ...
export type Dictionary<TValue> = { [key: string]: TValue }
export type ValueOf<TDictionary> = TDictionary[keyof TDictionary]
export type DictionaryOf<TDictionary> = Dictionary<ValueOf<TDictionary>>
Απάντηση #1
Θα ρίξω μια ματιά σε παραδείγματα από το DefinitelyTyped (π.χ. πακέτα @types/...).
Με βάση αυτό, πιστεύω:
"main"μπορεί να είναι μια κενή συμβολοσειρά ("")"types"θα πρέπει να δείχνει στο"index.d.ts"σας- Το πακέτο σας δεν θα πρέπει να περιλαμβάνει αρχεία
*.ts(αντίθετα, θα πρέπει να περιέχει αρχεία*.d.ts)
Αυτό μπορεί επίσης να είναι χρήσιμο να το διαβάσετε: https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html