Definitelytyped: @types/express, @types/express-serve-static-core -- κΈ°λ³Έ μ„œλ²„κ°€ μ‹€νŒ¨ν•©λ‹ˆλ‹€. ''"/api"' μœ ν˜•μ˜ μΈμˆ˜λŠ” 'RequestHandlerParams' μœ ν˜•μ˜ λ§€κ°œλ³€μˆ˜μ— ν• λ‹Ήν•  수 μ—†μŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2017λ…„ 08μ›” 04일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: DefinitelyTyped/DefinitelyTyped

  • [x ] @types/express 및 @types/express-serve-static-core νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•΄ λ³΄μ•˜λŠ”λ° λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
  • [x] μ•ˆμ •μ μΈ μ΅œμ‹  λ²„μ „μ˜ tscλ₯Ό μ‚¬μš©ν•΄ λ³΄μ•˜μŠ΅λ‹ˆλ‹€. https://www.npmjs.com/package/typescript
  • [ ] StackOverflow 에 μ ν•©ν•˜μ§€ μ•Šμ€ 질문이 μžˆμŠ΅λ‹ˆλ‹€. (μ μ ˆν•œ 질문이 있으면 κ±°κΈ°μ—μ„œ μ§ˆλ¬Έν•˜μ‹­μ‹œμ˜€.)
  • [x] [λ©˜μ…˜](https://github.com/blog/821-mention-somebody-they-re-notified) μž‘μ„±μž( Definitions by: in index.d.ts )λ₯Ό 톡해 λŒ€λ‹΅ν•˜λ‹€.

    • μ €μž: @borisyankov

μ•”ν˜Έ:

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'.

κ΄€λ ¨λœ:
expressjs/express#3263

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš” @natejgardner
λ‚˜λ„ 이 였λ₯˜κ°€ λ°œμƒν–ˆκ³  이것을 μ•Œμ•„λ‚΄λŠ” 데 λ„ˆλ¬΄ λ§Žμ€ μ‹œκ°„μ„ λ³΄λƒˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μžμ‹ μ˜ d.tsλ₯Ό μž‘μ„±ν•˜μ—¬ μœ ν˜• μ •μ˜λ₯Ό μˆ˜μ •ν•˜λ €κ³  μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. νŒŒμΌμ΄μ§€λ§Œ μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒμ΄ expressjsλ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. typescript: Argument of type 'typeof'은(λŠ”) 'RequestHandlerParams' μœ ν˜•μ˜ λ§€κ°œλ³€μˆ˜μ— ν• λ‹Ήν•  수 μ—†μŠ΅λ‹ˆλ‹€.
TypeScript μœ ν˜•κ³Ό Expressjs에 λ§Žμ€ λ¬Έμ œκ°€ μžˆμŒμ„ 보고 이 λ¬Έμ œκ°€ 심각할 수 μžˆμ§€λ§Œ *λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  κ°€μ Έμ˜€λŠ” 것이 μ΅œμ†Œν•œ μ˜€λ²„λ‘œλ“œλœ μ‚¬μš© ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

λͺ¨λ“  3 λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš” @natejgardner
λ‚˜λ„ 이 였λ₯˜κ°€ λ°œμƒν–ˆκ³  이것을 μ•Œμ•„λ‚΄λŠ” 데 λ„ˆλ¬΄ λ§Žμ€ μ‹œκ°„μ„ λ³΄λƒˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μžμ‹ μ˜ d.tsλ₯Ό μž‘μ„±ν•˜μ—¬ μœ ν˜• μ •μ˜λ₯Ό μˆ˜μ •ν•˜λ €κ³  μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. νŒŒμΌμ΄μ§€λ§Œ μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒμ΄ expressjsλ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. typescript: Argument of type 'typeof'은(λŠ”) 'RequestHandlerParams' μœ ν˜•μ˜ λ§€κ°œλ³€μˆ˜μ— ν• λ‹Ήν•  수 μ—†μŠ΅λ‹ˆλ‹€.
TypeScript μœ ν˜•κ³Ό Expressjs에 λ§Žμ€ λ¬Έμ œκ°€ μžˆμŒμ„ 보고 이 λ¬Έμ œκ°€ 심각할 수 μžˆμ§€λ§Œ *λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  κ°€μ Έμ˜€λŠ” 것이 μ΅œμ†Œν•œ μ˜€λ²„λ‘œλ“œλœ μ‚¬μš© ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

@natejgardner κ·€ν•˜μ˜ λ¬Έμ œλŠ” Api λΌμš°ν„°μ— μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒκ³Ό 같은 μ†”λ£¨μ…˜μ„ μ‹œλ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€("./routes/api" 파일둜).

import { Router } from "express";
const router: Router = Router();
router.get("/", getInfo);
// ...other routes...
export = router;

그것은 λ‚˜λ₯Όμœ„ν•œ μΌμž…λ‹ˆλ‹€ .... μ¦κΈ°μ‹­μ‹œμ˜€ :)

이 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆκΉŒ?

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰