嵌套模块的声明文件

时间:2017-12-27 17:57:01

标签: typescript typescript-typings

我在foo/bar.js内有一个带有Node JS模块的项目。现在我在src/mymod.ts编写一个TypeScript模块,该模块应导入foo/bar.js。如何为foo/bar.js模块编写声明文件?声明文件应该放在哪里?

我已经尝试在foo/bar.d.ts中放置声明文件但是当我在TypeScript模块中import * as bar from "../foo/bar"时,我收到以下错误:

File '/tmp/my_proj/foo/bar.d.ts' is not a module.

这是我的tsconfig.json文件

{
  "compilerOptions": {
    "allowJs": true,
    "outDir": "./dist/",
    "target": "es2017",
    "module": "commonjs",
    "strictNullChecks": true
  },
  "include": [
    "./src/"
  ]
}

这是我的声明文件:

// Type definitions for bar
declare module "bar" {
  function fun1(n: number) : number;
  function fun2(n: number) : number;
  function fun3(n: number) : number;
}

1 个答案:

答案 0 :(得分:1)

如果我将声明文件更改为以下内容,问题就解决了:

export function fun1(n: number) : number;
export function fun2(n: number) : number;
export function fun3(n: number) : number;

当我阅读@ Gerrit0的评论时,我已经提出了这个解决方案。如果有人能用解释写出更好的答案,我会改变答案。

相关问题