0
我在foo/bar.js
內部有一個帶有Node JS模塊的項目。現在我正在編寫一個TypeScript模塊src/mymod.ts
,它應該導入foo/bar.js
。如何爲foo/bar.js
模塊編寫聲明文件?聲明文件應該放在哪裏?嵌套模塊的聲明文件
我試着放置一個聲明文件中foo/bar.d.ts
但是當我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;
}
在我看來,'bar.d.ts'沒有正確聲明,如果你沒有任何'export'語句,它不是一個能夠解釋錯誤的模塊 - 如果你可以包含在你的問題中,我可能會幫助更多的文件。 – Gerrit0
@ Gerrit0忘了添加聲明文件。現在補充,謝謝 –
@ Gerrit0所以,我已經設法解決這個問題,通過刪除'module'構造並添加'export'到函數(實際上我有幾個函數)。我認爲模塊是自動導出的? –