2017-12-11 23 views
0

私はTypescriptとantデザインライブラリを使用していますが、1つのプロパティを追加するためだけにインターフェイスの1つを拡張しようとしています。 は、私は、元のインターフェイスをインポートすることができます(あなたがフォルダ構造を知っている):Typescriptで外部型宣言を拡張する

import { CollapseProps } from 'antd/lib/collapse/Collapse';

私はそれを拡張する方法がわかりません。私は、プロジェクトのルートにtypings/antdフォルダを作成している

は、tsconfig.json(及びbaseUrl)へのパスの設定を追加しました:

"paths": { 
    "antd": [ 
    "node_modules/antd", 
    "typings/antd" 
    ] 
} 

そして私は次のように拡張インターフェースをエクスポートする異なる変形を試みた:

export interface CollapsePanelProps { 
    showArrow?: boolean; 
} 

typings/antd/index.d.ts

または私はantdフォルダ構造を模倣して、Collapse.d.tsファイル内typings/antd/collapse

私のタイピングファイルに名前空間antdを宣言し、インターフェイスを入れてみました。

これはどれも動作していないようです。

答えて

0

私の理解では、宣言ファイルは実際には外部のJavascriptファイル用です。

元のインターフェイスを拡張してコード内でインターフェイスを使用できますか?

import {CollapsePanelProps as OriginalCollapsePanelProps} from 'antd/Collapse'; 

export interface CollapsePanelProps extends OriginalCollapsePanelProps { 
    showArrow?: boolean; 
} 
+0

はい、私はこれを行うことができます(実際には、私はこの機能を追加することができると私は理解しているので、拡張も必要ではないと思うが)問題は私がこのインターフェースを直接使用しないことです。私はこのインターフェイスを使用して反応コンポーネントとして定義されているCollapse.Panelコンポーネントを使用しています。それに 'showArrow'を追加すると、typescriptは文句を言うでしょう。だから私は、Typescriptに私の拡張バージョンをantの中で使うように指示する方法を探しています。 – apieceofbart

+0

マージは宣言(d.tsファイル)にのみ適用され、これらの種類のインターフェイスではないと考えています – tarling

+0

hmmですが、このインターフェイスはもともとd.tsファイルで作成されており、d.tsファイル – apieceofbart

関連する問題