@types/express
و @types/express-serve-static-core
وواجهت مشاكل.Definitions by:
في index.d.ts
) حتى يتمكنوا من ذلك رد.الشفرة:
import * as express from "express";
import { Request, Response } from "express";
import * as bodyParser from "body-parser";
import * as api from "./routes/api";
namespace my_api {
let app = express();
let port: number = process.env.port || 3000;
app.use(bodyParser.json());
app.use('/api', api);
app.get('/', (req: Request, res: Response) => {
res.send("Hello world");
});
app.listen(port, () => console.log(`Express app listening on port ${port}`);
}
عند البناء:
ERROR in /path/to/server.ts (25,11): Argument of type '"/api"' is not assignable to parameter of type 'RequestHandlerParams'.
متعلق ب:
صريح / صريح # 3263
تضمين التغريدة
لقد واجهت هذا الخطأ أيضًا وقضيت الكثير من الوقت في اكتشاف ذلك. حاولت إصلاح تعريف الأنواع عن طريق كتابة d.ts. الملفات لكني فشلت. ثم جئت عبر هذا expressjs: printcript: Argument of type 'typeof
أرى الكثير من المشاكل مع أنواع TypeScript و Expressjs وربما تكون هذه المشكلة خطيرة ولكن الاستيراد بدون استخدام * يبدو أنه يحل المشكلة على الأقل مع استدعاء وظيفة الاستخدام الزائد.
natejgardner مشكلتك في Api Router:
يمكنك تجربة حل مثل هذا (في ملف "./routes/api"):
import { Router } from "express";
const router: Router = Router();
router.get("/", getInfo);
// ...other routes...
export = router;
إنه عمل لي .... استمتع :)
هل هذا ثابت؟
التعليق الأكثر فائدة
تضمين التغريدة'غير قابل للتخصيص إلى معلمة من النوع' RequestHandlerParams '
لقد واجهت هذا الخطأ أيضًا وقضيت الكثير من الوقت في اكتشاف ذلك. حاولت إصلاح تعريف الأنواع عن طريق كتابة d.ts. الملفات لكني فشلت. ثم جئت عبر هذا expressjs: printcript: Argument of type 'typeof
أرى الكثير من المشاكل مع أنواع TypeScript و Expressjs وربما تكون هذه المشكلة خطيرة ولكن الاستيراد بدون استخدام * يبدو أنه يحل المشكلة على الأقل مع استدعاء وظيفة الاستخدام الزائد.