2016-04-09 17 views
0

私は最初のTypescript定義ファイルを作成しようとしています。対象コード(index.js)filename.jsです:Typescript「エクスポートされた外部パッケージ型がモジュールではありません」

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) {} 

私がこれまで持っている定義(index.d.ts)ファイル:

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; 
} 

これはよく私のに十分な(オートコンプリート作品を作品編集者)が、私はコンパイルエラーを取得:

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.

このエラーが(新しい)活字体に何を意味し、そしてもっと重要なのは、どのように私はそれをより正確にするために、私の定義を変更する必要がありますか?あなたが提供するデータのための

+0

これを修正できましたか?私は同じ問題を抱えている。 – emzero

+0

@emzeroいいえ私はこれまでにできなかった –

+0

うまくいけば、それはTS 2.0で修正されることを望む – emzero

答えて

1

定義ファイルを指定できます -

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; 
} 
} 

あなたが指定することにより、このタイピングファイルを使用することができます -

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

それが動作するかどうかを参照してください。

詳細については、すでに作成された.d.tsファイルを参照してください。例えばangular-material.d.ts

+0

残念ながら、同じエラー。また、あなたの例は正確な自動補完を提供しません。 –

+0

既に.d.tsファイルが作成されていますか?私たちのコードの中に余分なものが含まれないように、それらのファイルを参照する必要があります。 – Ajay

+0

質問にindex.d.tsファイルを含めました。 –

関連する問題