2016-04-09 2 views
0

Ich versuche meine erste Typoskript-Definitionsdatei zu erstellen. Das Thema Code ist filename.js (index.js):Typescript "exportierte externe Paket-Typisierung ist kein Modul"

module.exports = { 
    extension: extension, 
    basename: basename, 
    removeSuffix: removeSuffix, 
    removeSuffixWithDelimiter: removeSuffixWithDelimiter, 
    appendSuffix: appendSuffix, 
    appendSuffixWithDelimiter: appendSuffixWithDelimiter, 
    directoryName: directoryName 
} 
function extension(filename) {} 
function basename(filename) {} 
function removeSuffix(filename) {} 
function removeSuffixWithDelimiter(delimiter, filename) {} 
function appendSuffix(suffix, filename) {} 
function appendSuffixWithDelimiter(suffix, delimiter, filename) {} 
function directoryName(filename) {} 

Die Definition (index.d.ts Datei) Ich habe bisher:

declare module "filename.js" { 
    export function extension(filename: string): string; 
    export function basename(filename: string): string; 
    export function removeSuffix(filename: string): string; 
    export function removeSuffixWithDelimiter(delimiter: string|number, filename: string): string; 
    export function appendSuffix(suffix: string, filename: string): string; 
    export function appendSuffixWithDelimiter(suffix: string, delimiter: string|number, filename: string): string; 
    export function directoryName(filename: string): string; 
} 

Das funktioniert gut genug (Auto-Vervollständigen-Werke in meinem Editor), aber ich habe einen Compiler-Fehler:

index.ts(21,29): error TS2656: Exported external package typings file 'filename.js/index.d.ts' is not a module. Please contact the package author to update the package definition.

Was bedeuten diese Fehler bedeuten (neu Typoskript), und was noch wichtiger ist, wie soll ich meine Definition ändern, damit es mehr richtig?

+0

Haben Sie das beheben können? Ich habe das gleiche Problem. – emzero

+0

@emzero nein Ich konnte bisher nicht –

+0

Hoffentlich wird es in TS 2.0 behoben werden – emzero

Antwort

1

Definitionsdatei für die von Ihnen zur Verfügung gestellten Daten können: -

declare module customTypings{ 
interface filename{ 
    extension(filename: string): string; 
    basename(filename: string): string; 
    removeSuffix(filename: string): string; 
    removeSuffixWithDelimiter(delimiter: string|number, filename: string): string; 
    appendSuffix(suffix: string, filename: string): string; 
    appendSuffixWithDelimiter(suffix: string, delimiter: string|number, filename: string): string; 
    directoryName(filename: string): string; 
} 
} 

Sie diese Eingabe-Datei durch Angabe verwenden: -

/// <reference path="pathName" /> 

Prüfen Sie, ob es funktioniert.

Weitere Informationen finden Sie in bereits erstellten .d.ts-Dateien. z.B. angular-material.d.ts

+0

Gleicher Fehler, leider. Außerdem enthält Ihr Beispiel keine genauen Autovervollständigungen. –

+0

hast du die bereits erstellte .d.ts Datei gesehen. Vielleicht sollten wir diese Dateien bei der Erstellung unserer Dateien verwenden, damit wir keine zusätzlichen Daten in unseren Code aufnehmen. – Ajay

+0

Ich habe meine index.d.ts-Datei in die Frage aufgenommen. –

Verwandte Themen