Cómo crear un paquete con archivos de definición de la NGP, donde declararon sólo interfaces de *.ts
archivos.
Supongamos que tenemos dos interfaces y una clase defination:
export interface A {
id: number;
}
export interface B {
name: string;
}
export class C {
}
Necesito que empaquetar estos *.ts
archivos en la NGP paquete, cómo hacerlo? ¿Debo exportar index.ts
?
Mi package.json
es:
{
"name": "npm",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
Mi tsconfig.json
es:
"compilerOptions": {
"target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true
}
En el interior index.ts
hay:
import { A } from "./a";
import { B } from "./b";
import { C } from "./c";
¿Dónde './a', './b', './c'
está ficheros con declaraciones de interfaces y clases.
Cuando construyo al index.js
archivo usando el comando: tsc index.ts
entonces no puedo obtener acceso a las interfaces utilizando el módulo index.js
en otros proyectos (NPM instalar)
Para empaquetar los tipos con su paquete, hay dos cosas específicas para que lo haga:
- Establecer
"declaration"
entsconfig.json
. Esto le dice mecanografiado para generar*.d.ts
archivos. - Establecer
"types"
enpackage.json
. Esto le indica dónde encontrar mecanografiado generados*.d.ts
archivos.
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"declaration": true <----------------------
}
}
package.json
{
"name": "my-package",
"version": "1.0.0",
"main": "index.js",
"types": "index.d.ts", <----------------------
"license": "ISC",
"devDependencies": {
"typescript": "^3.8.3"
}
}
Aquí es un ejemplo de trabajo para usted en GitHub . Todos los datos mencionados, y más están ocultos en la documentación .