首页 > 解决方案 > 快速车把在 TypeScript 中引发类型错误

问题描述

import express from 'express';
import { engine } from 'express-handlebars';
const app = express();
app.engine("hbs", engine()) // This line trows an error:

“引擎”类型的参数不能分配给“(路径:字符串,选项:对象,回调:(e:任何,渲染?:字符串)=> void)=> void”类型的参数。

我有以下依赖项:

"dependencies": {
  "express": "^4.17.1",
  "express-handlebars": "^6.0.1",
  "morgan": "^1.10.0",
  "@types/express": "^4.17.13",
  "@types/node": "^16.11.7",
  "typescript": "^4.4.4",
  "ts-node": "^10.4.0"
}

我试过环顾四周,但使用 TypeScript 找不到任何关于它的信息。

希望有人可以提供帮助;并提前感谢!

标签: typescriptexpresstypeshandlebars.jsts-node

解决方案


如快速文档中所述:

一些模板引擎不遵循这个约定, 创建Consolidate.js库是为了映射节点的所有流行模板引擎以遵循这个约定,从而允许它们在 Express 中无缝工作。

这里说的是Consolidate、 Express 和 TypeScript的示例:

import express from "express";
import cons from "consolidate";

const app = express();
app.engine("html", cons.handlebars);
app.set("view engine", "html");
app.set("views", __dirname + "/views");

推荐阅读