2017-10-29 6 views
-1

TS2687:All declarations of 'x' must have identical modifiers.とは何ですか?私は私IntelliJ IDEAは、MouseEventインターフェイスが既に宣言されていると誤って考えています

interface Event { 
    timestamp: number; 
} 

interface MouseEvent extends Event { 
    x: number; 
    y: number 
} 

名前変更変数が助けのために動作しませんFunction Parameter Bivarianceセクションからコードを言語を学ぶためにTSのドキュメントを通過すると、次のよ。私はMouseEventがすでにどこかで定義されていると思われますが、もしそうなら、私はそれがどこに定義され、何をするべきか理解できません。 IntelliJ IDEAだけがここでエラーを見ているようですが、npmによる単一ファイルプロジェクトの実行は正しく機能します。

私の設定では、インターフェイスがあれば、宣言が互いにまたは同じ名前のクラスに干渉しないよう、複数回宣言することができ、活字体でこの

{ 
    "compilerOptions": { 
    "sourceMap": true, 
    "experimentalDecorators": true, 
    "strict": true, 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "noImplicitThis": true, 
    "noImplicitReturns": true,    /* Report error when not all code paths in function return a value. */ 
    "noFallthroughCasesInSwitch": true  /* Report errors for fallthrough cases in switch statement. */ 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 

答えて

0

のように見えます。受け取っているエラーは、特定のプロパティ宣言が、特に修飾子に関して互いに干渉しているときに発行されます。

たとえば、あなたは、このコードに同じエラーを受け取ります:

class Thing { 
    protected timestamp: number; // TS2687 
} 

// interfaces with the same name as a class effectively extend the class's definition. 
interface Thing { 
    timestamp: number; // TS2687 
} 
EventMouseEventのいずれかが既にそれを宣言しようとしているされているコンテキスト内で宣言され、そのいずれかをされているように思われる

timestampまたはxまたはyは、他の宣言(特にクラス宣言)では非公開と宣言されています。

これはあなたの正確な問題であるかどうかを伝えるための十分な情報がありません。 EventまたはMouseEventは別の場所にプロジェクトまたはその依存関係の1つで宣言されている場合

  • かを確認して、自分のインタフェースの修飾子は、それらのクラス上の既存の修飾子に干渉するかどうか。
+1

Intelij IDEAのようにエラーが発生しているようです。私はそれがストレッチであるかもしれないと思うなぜあなたはそれがそう考えるのアイデアを持っていますか? – expert

+0

プロジェクトディレクトリから 'tsc' cliを実行してもこのエラーは発生しません。多くの一般的なモジュール/パッケージには 'Event'クラスがあります。私はIntelijがIDEの設定の一部としてあなたの代わりにこれらの定義をインポートしているのだろうか?予想されるTypescriptのバージョンがIntellijのバージョンと異なる場合もあります。これは、パッケージマネージメントファイル( 'package.json'、またはあなたのパッケージマネージャの同等物)にTypescriptバージョンを含めることによって、これをオーバーライドできます。 https://www.jetbrains.com/help/idea/compiling-typescript-to-javascript.html –

+1

'TS2687'はtscコンパイラエラーですので、IDEAでは問題ありませんが、設定上の問題です。使用されているTypeScriptのバージョンは、* Settings |言語とフレームワーク| TypeScript * – lena

関連する問題