Ho creato un file di definizione (d.ts) dal mio progetto dattiloscritto usando l'argomento --declaration dal compilatore tsc.File di definizione generati (.d.ts) per dattiloscritto che non funziona con types package.json
Ma questo file di definizione generato a quanto pare non funziona quando si tenta di pubblicare il pacchetto con la proprietà tipizzazioni al NPM package.json. Ho creato un altro progetto per testarlo.
Si lamenta con il messaggio: "Esportato pacchetto esterno di file tipizzazioni di file' ... d.tS' non è un modulo Si prega di contattare il pacchetto autore di aggiornare la definizione del pacchetto.".
Questo sono i miei file di origine:
MyInterface.ts
export interface MyInterface
{
MyProperty: string;
}
MyClass.ts
import {MyInterface} from './MyInterface';
export class MyClass implements MyInterface
{
get MyProperty(): string
{
return "MyString";
}
}
MyInheritedClass.ts
import {MyClass} from './MyClass';
export class MyInheritedClass extends MyClass
{
public MyMethod(): number
{
return 1;
}
}
Il comando TSC è questo:
tsc MyClass.ts MyInterface.ts MyInheritedClass.ts --declaration -t es5 -outFile "mydefinition.js" --module "system"
Questa è la definizione generato:
mydefinition.d.ts
declare module "MyInterface" {
export interface MyInterface {
MyProperty: string;
}
}
declare module "MyClass" {
import { MyInterface } from "MyInterface";
export class MyClass implements MyInterface {
MyProperty: string;
}
}
declare module "MyInheritedClass" {
import { MyClass } from "MyClass";
export class MyInheritedClass extends MyClass {
MyMethod(): number;
}
}
c'è un'altra cosa che devo da fare o la definizione generata presumibilmente non funziona nelle tipizzazioni package.json ??
Aggiornamento per maggiori dettagli:
Lo scenario è che ho 2 progetti:
Il primo progetto è dove ho generare la libreria dove ho pubblicherò al NPM, e il pacchetto .json è dove metto la proprietà typings che collega al file mydefinition.d.ts generato dal comando tsc -d.
Il secondo progetto creato per testare il primo aggiungendo il pacchetto (con le digitazioni) generato.
un legame con il 2 progetti e un altro link per lo scenario:
https://github.com/jvitor83/typings-packagejson
Credo che il problema è con la "I tuoi file di definizione dovrebbero essere scritti come moduli esterni" alla prima collegamento. Ma voglio sapere se c'è un modo per ottenere quelle definizioni generate per mettere la proprietà typings di package.json.
per riprodurre il problema:
Clone questa repo: https://github.com/jvitor83/test-typings-packagejson
Do 'NPM install', aperto con VSCode e passare al file 'src/test.ts'.
hai provato a usare 'typings.json'? –
La mia esperienza con i dattilografi è con Angular2 dove nel tuo 'package.json' nella sezione' scripts' dichiari uno script per le tipizzazioni e dopo puoi usarlo per installare le definizioni di tipo che vuoi in questo modo: 'npm esegui tipizzazioni - - installa jasmine --ambient --save' –
Dai un'occhiata a questi due collegamenti: 1) https://angular.io/docs/ts/latest/guide/npm-packages.html 2) https: // angular. io/docs/ts/latest/guide/typescript-configuration.html –