2017-12-20 40 views
0

storybook-routerの型定義を書きたいと思います。これはマイナーな開発ツール(すなわち、anyが受け入れられる)であるため正確である必要はありませんが、動作させることさえできないようです。私が表現したい何デフォルトのエクスポートでモジュールの型定義を書く方法

は次のとおりです。

import StoryRouter from 'storybook-router'; 

... StoryRouter@types/storybook__reactからインターフェイスStoryDecoratorに一致する関数です。

Iは、次の定義ファイルを試みた:私は最後の例(declare module 'storybook-router')を使用する場合

TS7016: Could not find a declaration file for module 'storybook-router'. '/<path snipped>/node_modules/storybook-router/dist/StoryRouter.js' implicitly has an 'any' type. Try npm install @types/storybook-router if it exists or add a new declaration (.d.ts) file containing declare module 'storybook-router';

しかし、私はできません。次のエラーの結果はこと、Unfortuantely

import { StoryDecorator } from '@storybook/react'; 

declare type StoryRouter = StoryDecorator; 

export default StoryRouter; 

をデフォルトのエクスポートを設定する方法を理解しているようです。

このタイプを表す正しい方法は何ですか?

答えて

1

.d.tsファイルにインポートしないで、モジュールを宣言するだけです。
通常、それがこの(任意の最も簡単なユースケース)のようになります動作し、私にとっては十分です

// storybook-router.d.ts 
declare module 'storybook-router' { 
    const StoryDecorator:any; 
    export default StoryDecorator; 
} 
+0

うーんおかげ。好奇心のために、 '' @ storybook/react''の '' StoryDe​​corator''のタイプになる '' any''を得る方法がありますか? – Vincent

+0

ほとんどすべてのjsライブラリ用の定義ファイルを作成する方法があると確信しています。私は専門家ではありません。でも、たとえそれを使ったことがないので、そのクラスを読まなくてはなりません。 定義ファイルを作成する私の通常の方法は、型定義を持つライブラリを探し、同様のアプローチを使用して、それらがどのように動作するかを確認することです。 これまでに見つけたのは、探しているようです。 https://www.npmjs.com/package/@types/storybook__react – Lusito

+0

https://microsoft.github.ioで検索してみてください/ TypeSearch /定義を探しているとき – Lusito

関連する問題