2016-08-02 60 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

我最感兴趣的是在同一个文件中导出多个接口。有没有从同一个文件中导出多个接口的好方法? –