2016-08-02 57 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};因爲沒有導出的成員字符串' 如果我從'../ validators/validators'中輸入*作爲S;'我沒有看到通過intellisense可用的字符串接口。 –

+0

如果您不需要包裝'Validator'命名空間,只需從我的代碼片段中刪除第一行和最後一行即可擺脫它。 –

+0

我最感興趣的是在同一個文件中導出多個接口。有沒有從同一個文件中導出多個接口的好方法? –