javascript - Typescript 2.0 命名空间文件不是模块

标签 javascript typescript

我正在使用 TypeScript 2.1.0 和 VS Code 1.3,我正在尝试适应 TypeScript 2 中的模块/命名空间系统。我有一个文件 validators.ts

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

当我尝试使用它时 从“../validators/validators”导入{Validator};

我收到错误 validators.ts is not a module
我正在使用 npm i @types/myTypes 安装我的外部类型,在安装 bluebird 并复制其结构后,我仍然看到此错误。这是 VS Code 错误还是我的错误?

最佳答案

它更简单:

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

只有在为外部库编写类型定义时才应该使用declare module。对于您自己的 TypeScript 代码,请使用常规 ES6 样式的 importexport 语法。

关于javascript - Typescript 2.0 命名空间文件不是模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38730222/

相关文章:

typescript - 在 Typescript 中导出数组的类型

javascript - 在函数内部使用公共(public)变量

javascript - React,为什么要用 Redux

javascript - 提供的音量超出范围 [0, 1] 错误

javascript - 对 useEffect 使用react,依赖数组仍在循环

typescript - Foreach 数组以在 TypeScript 中显示值

javascript - *.d.ts 文件从哪里来?

来自多个文件的 typescript 合并接口(interface)

javascript - 如何以 Angular 访问 DOM 元素

javascript - 使用连续的 D3.html() 方法连接 html;而不是替换