快速车把在 TypeScript 中引发类型错误

Posted

技术标签:

【中文标题】快速车把在 TypeScript 中引发类型错误【英文标题】:express-handlebars throwing type error in TypeScript 【发布时间】:2021-12-27 23:09:48 【问题描述】:
import express from 'express';
import  engine  from 'express-handlebars';
const app = express();
app.engine("hbs", engine()) // This line trows an error:

我有以下依赖项:

"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 找不到任何相关信息。

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

【问题讨论】:

您的代码在打字稿游乐场中没有类型错误:tsplay.dev/mZbGam 它在模块 JS 中工作,但在使用 ts-node 或 nodemon 时无法运行,并引发相同的错误。我现在会使用 JS,但我会留下这个问题,因为我无法使用 TS 找到这方面的任何资源。 【参考方案1】:

正如快递文档中所说:

一些模板引擎不遵循这个约定, 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");

【讨论】:

谢谢,成功了!

以上是关于快速车把在 TypeScript 中引发类型错误的主要内容,如果未能解决你的问题,请参考以下文章

无法从命令行在 Node 上安装车把

找不到模块“hbs”,快速车把

Typescript 在具有严格编译器选项的 node_modules 中引发错误

检查变量的数据类型,否则引发错误[重复]

scala强制转换不兼容类型而不会引发错误

迭代快速车把中的对象