#node.js #typescript
#node.js #typescript
Вопрос:
Я новичок в typescript, я столкнулся с некоторыми предупреждениями typescript при использовании promisify для преобразования fs.sta.
const stat: (
pathname: string
) => Promise<fs.Stats | NodeJS.ErrnoException> = util.promisify(fs.stat);
Cannot invoke an expression whose type lacks a call signature. Type 'Stats' has no compatible call signatures.ts(2349)
Ответ №1:
Как выглядит ваш tsconfig.json
и package.json
?
Для меня работает следующее:
import fs from "fs";
import util from "util";
const stat: (pathname: string) => Promise<fs.Stats> = util.promisify(fs.stat);
tsconfig.json
:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true
}
}
package.json
:
{
"dependencies": {
"@types/node": "^11.11.8",
"typescript": "^3.3.4000"
}
}
Также не следует указывать тип ошибки, stat
вызываемой в типе обещания. Поэтому вместо Promise<fs.Stats | NodeJS.ErrnoException>
вам следует просто сделать Promise<fs.Stats>