根据文档,使用pure js中的 Helm 非常容易:
const express = require('express')
const helmet = require('helmet')
const app = express()
app.use(helmet())
但是我如何从typescript使用它呢?Typings文件导出了一堆东西,其中一个是 Helm 接口,它不能作为函数调用..我可以这样导入它,但不知道下一步该怎么做,我应该传递给app.use什么?
import * as helmet from 'helmet'
我已经进口了最新版本的 Helm 和打字:
"@types/helmet": "0.0.43",
"helmet": "^3.18.0"
8条答案
按热度按时间jmo0nnb31#
终端:
应用程序ts:
s2j5cfk02#
自08.05.2021起,使用 Helm
4.6.0
,我可以在不安装任何类型的情况下在Typescript项目中执行以下操作:以防有人像我一样挣扎。
amrnrhlw3#
这正是你可以使用的方法,只需在应用程序中调用helmet。
有关更多详细信息,请访问此link,以获取带typescript的Express应用程序
pxyaymoc4#
根据
@types/helmet
,这个包已经被弃用了,因为helmet现在有自己的类型定义,所以我不建议你安装@types/helmet
包。要解决此问题,请从
package.json
文件中删除 Helm 依赖项,然后通过运行以下命令安装最新版本的helmet
:npm i helmet
avwztpqn5#
导入 Helm 方式:
以避免以下警告:
xdyibdwo6#
在
tsconfig.json
中启用esModuleInterop
选项,警告将消失。之后,就不需要
import * as helmet
了。q8l4jmvw7#
对于5.1.0版的 Helm ,您需要按以下方式导入:
import helmet from 'helmet'
以避免出现以下警告:
This expression is not callable.
1aaf6o9v8#
我导入为
后来又将其添加为
helmet.default()
似乎代替了helmet()