所以我刚开始接触打字机遇到了一些小问题。所以我使用这一行在我项目中导入helmet:
import * as helmet from "helmet";
字符串
但是我一直在犯这个错误
src/index.ts:3:25 - error TS7016: Could not find a declaration file for module 'helmet'. 'D:/Dev/ticktack/node_modules/helmet/index.cjs' implicitly has an 'any' type.
Try `npm i --save-dev @types/helmet` if it exists or add a new declaration (.d.ts) file containing `declare module 'helmet';`
型
不,安装@types/helmet
不会工作,因为该软件包只是一个空存根。我想到的第一个解决方案是在导入行希望“修复”它之前使用// @ts-ignore
。但它惹恼了我去看看 Helm 模块,他们确实提供了 .d.cts 和 .d.mts 文件,但ts-node不承认他们,事实上,只是改变一个从index.d.cts到index.d.ts真正修复了它。
现在我怀疑这是一个问题,在我的tsconfig,所以可以有人请帮助我?!
下面是我tsconfig:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"lib": ["dom", "es6", "es2017"],
"skipLibCheck": true,
"sourceMap": true,
"outDir": "./dist",
"moduleResolution": "node",
"removeComments": true,
"noImplicitAny": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"noImplicitThis": true,
"noUnusedLocals": false,
"noUnusedParameters": false,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"resolveJsonModule": true,
"baseUrl": ".",
"typeRoots": ["./node_modules/@types", "src/types"]
},
"exclude": ["node_modules"],
"include": ["./src/**/*.tsx", "./src/**/*.ts"]
}
型
**编辑:**这个项目是用typeORM init和express,here's a sapmle of my setup搭建的。这也许能解释我为什么会有这些问题
1条答案
按热度按时间kcwpcxri1#
您收到此错误是因为您使用的TypeScript(
4.5.2
)与您的Helmet(7.0.0
)版本不兼容/旧版本。将TypeScript更新到最新版本(截至撰写本文时为
5.1.6
)以解决问题:npm i -D typescript@latest
或pnpm add -D typescript@latest
或yarn add -D typescript@latest
个这取决于您选择的包管理器。:)
来源:
"typescript": "^5.1.6"
作为Helmet repo中的开发依赖项(截至撰写本文时)https://github.com/helmetjs/helmet/blob/main/package.json