2016-08-02 11 views
1

私は活字体2.1.0およびVSコード1.3を使用していると私は、私はファイルを持っている活字体2にモジュール/名前空間のシステムに慣れるしようとしているではありませんvalidators.ts活字体2.0名前空間ファイルには、モジュール

namespace Validator{ 
    export interface String{ 
    isValid(s:string):boolean; 
    } 
} 
declare module 'validator'{ 
    export = Validator; 
} 

そして、私は import {Validator} from "../validators/validators";

ようにそれを使用しようとすると、私はエラーvalidators.ts is not a moduleを取得します。
npm i @types/myTypesで外部タイプをインストールしています。ブルーバードをインストールしてその構造をコピーした後、私はまだこのエラーが表示されます。これはVSコードのバグですか、私のバグですか?

答えて

4

それははるかに簡単です:

export namespace Validator{ 
    export interface String{ 
    isValid(s:string):boolean; 
    } 
} 

外部ライブラリの型定義を書くときにだけあなたがdeclare moduleを使用する必要があります。独自のTypeScriptコードの場合、通常のES6スタイルのimportexportの構文を使用します。

+0

このインターフェイスを正しくインポートするにはどうすればよいですか? '../validators/validators"からの 'import {String};エクスポートされたメンバではありませんString' もし私が '../ validators/validators 'から' import * as S'を実行した場合、intellisenseで利用できるStringインタフェースが表示されません。 –

+0

'Validator'ネームスペースをラップする必要がない場合は、コードスニペットの最初と最後の行を削除してください。 –

+0

私は、同じファイルに複数のインターフェイスをエクスポートすることに最も関心があります。同じファイルから複数のインターフェイスをエクスポートする良い方法はありますか? –

関連する問題