我在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;
}
答案 0 :(得分:1)
如果我将声明文件更改为以下内容,问题就解决了:
export function fun1(n: number) : number;
export function fun2(n: number) : number;
export function fun3(n: number) : number;
当我阅读@ Gerrit0的评论时,我已经提出了这个解决方案。如果有人能用解释写出更好的答案,我会改变答案。