2017-05-18 8 views
1

私はコンポーネントとDefinitelyTypedの定義を使用しています。私の問題は、ダウンロードされた定義がコンポーネントと一致しないということです。私はこれを解決するプル要求を作成しましたが、いつパッチが適用されるかわからないので、私はそれを上書きしなければなりません。 node_modules\@typesにあるタイプ定義ファイルをローカルで編集することはできません。私たちはこのプロジェクトを担当しているチームであり、node_modulesフォルダはチェックインされていません。オーバーライドType V2.2.2のタイプはNPMからダウンロードしました@タイプ

どのようにタイプ定義を上書きできますか?他のファイルが動作してからLinkContainer.dファイルをオーバーライドするのは難しいです。

プルリクエスト:

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/16600

私は正しかったが、それは拾われない私のタイピングフォルダにLinkContainer.d.tsという名前のファイルを作成しようとしました。同じフォルダに私はglobal.d.tsのインターフェースを持っています。この例に基づいて

/// <reference types="react-router-bootstrap" /> 
import { ComponentClass } from "react"; 
import { NavLinkProps } from "react-router-dom"; 

type LinkContainer = ComponentClass<NavLinkProps>; 
declare const LinkContainer: LinkContainer; 

export default LinkContainer; 

答えて

2

解決策:

https://github.com/Microsoft/TypeScript/issues/11137#issuecomment-251755605

ルートフォルダにtypingsというフォルダを追加します。

編集tsconfig.json:

{ 
    "compilerOptions": { 
    //baseUrl and paths needed for custom typings 
    "baseUrl": ".", 
    "paths": { 
     "*": [ "./typings/*" ] 
    }, 
    ... 

react-router-bootstrap(名前はモジュールに同一でなければならない)と呼ばれる-folder typingsにフォルダを追加し、その内のファイルは、 index.d.tsと呼ばれます。ファイル index.d.ts

カスタムtypningsや参照を追加します。

import { ComponentClass } from "react"; 
import { NavLinkProps } from "react-router-dom"; 

type LinkContainer = ComponentClass<NavLinkProps>; 
export const LinkContainer: LinkContainer; 

今のモジュールをインポートする場合、カスタムタイプがロードされた:import { LinkContainer } from 'react-router-bootstrap';

関連する問題