Definitelytyped: [@ рдкреНрд░рдХрд╛рд░/рдПрдХреНрд╕рдкреНрд░реЗрд╕] рдирд╡реАрдирддрдо рдкреНрд░рдХрд╛рд░ рдлреЗрдВрдХ рд╕рдВрдкрддреНрддрд┐ 'рд╣реЗрдбрд░', 'рдмреЙрдбреА', 'рдХреНрд╡реЗрд░реА' рдкреНрд░рдХрд╛рд░ 'рдЕрдиреБрд░реЛрдз' рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ<any>'</any>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдирд╡ре░ 2019  ┬╖  30рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: DefinitelyTyped/DefinitelyTyped

рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред

  • [рдПрдХреНрд╕] рдореИрдВрдиреЗ @types/express рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред
  • [X] рдореИрдВрдиреЗ tsc рдХреЗ рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред https://www.npmjs.com/package/typescript
  • [X] рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рд╢реНрди рд╣реИ рдЬреЛ StackOverflow рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реИред (рдХреГрдкрдпрд╛ рд╡рд╣рд╛рдВ рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рд╢реНрди рдкреВрдЫреЗрдВ)ред
  • [X] [рдЙрд▓реНрд▓реЗрдЦ](https://github.com/blog/821-mention-somebody-the-re-notified) рд▓реЗрдЦрдХ ( Definitions by: рдореЗрдВ index.d.ts ) рддрд╛рдХрд┐ рд╡реЗ рдХрд░ рд╕рдХреЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛.

    • рд▓реЗрдЦрдХ: @borisyankov , @cmuh , @rockwyc992 , @OliverJAsh

рдореЗрд░реЗ рдмрд┐рд▓реНрдб @ рдкреНрд░рдХрд╛рд░/рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдлреЗрдВрдХ рд░рд╣реЗ рд╣реИрдВ:

Property 'headers' does not exist on type 'Request<any>'

Property 'query' does not exist on type 'Request<any>'

Property 'body' does not exist on type 'Request<any>'

рд╣рдордиреЗ рдЕрдкрдиреА рдУрд░ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред рдореИрдВрдиреЗ рдпрд╣ рднреА рджреЗрдЦрд╛ рдХрд┐ рдореЗрд░рд╛ TS рд╡рд╛рддрд╛рд╡рд░рдг, рдЬрдм рдореИрдВ @types/express рдХреЗ index.d.ts рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реВрдВ, рддреЛ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ:

`express-serve-static-core` has no exported member 'ParamsDictionary'

`express-serve-static-core` has no exported member 'Params'

`express-serve-static-core` has no exported member 'Params'

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рдкрд░ рдореБрдЭреЗ рдХреЛрдИ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдпрд╛рд░реНрди рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛:

$ rm -f yarn.lock
$ yarn cache clean
$ yarn

рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

рд╕рднреА 30 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@types/express рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп @types/express-serve-static-core рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ, рдлрд┐рд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░реЗрдВред

рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ! рдпрд╣ 4.17.1 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди 4.17.2 рдореЗрдВ рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреИрдЪ-рд╕реНрддрд░реАрдп рдЕрдкрдбреЗрдЯ рдЯреВрдЯ рд░рд╣рд╛ рд╣реИред

@ghostganz @duro рдХреНрдпрд╛ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрджрдо рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ рдлрд╝рд╛рдЗрд▓ 4.17.1 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ:

import { Request } from 'express';

function isHealthCheck(req: Request): boolean {
  return req.method === 'GET' && req.query.healthCheck === 'true';
}

export default isHealthCheck;

4.17.2 рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рдпреЗ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ:

TS2339: Property 'method' does not exist on type 'Request<any>'.
TS2339: Property 'query' does not exist on type 'Request<any>'.

express-serve-static-core рдХрд╛ рдХреЛрдИ рдирд┐рд░реНрдпрд╛рддрд┐рдд рд╕рджрд╕реНрдп 'ParamsDictionary' рдирд╣реАрдВ рд╣реИ

express-serve-static-core рдХрд╛ рдХреЛрдИ рдирд┐рд░реНрдпрд╛рддрд┐рдд рд╕рджрд╕реНрдп 'рдкрд░рдо' рдирд╣реАрдВ рд╣реИ

express-serve-static-core рдХрд╛ рдХреЛрдИ рдирд┐рд░реНрдпрд╛рддрд┐рдд рд╕рджрд╕реНрдп 'рдкрд░рдо' рдирд╣реАрдВ рд╣реИ

рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ @types/express-serve-static-core рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ @types/express рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ @types/express-serve-static-core рдХреЛ 4.16.11 рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореЗрд░реА рдкреИрдХреЗрдЬ-рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдиреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 4.16.7 рд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдерд╛ред

4.17.2 рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рдпреЗ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ:

TS2339: Property 'method' does not exist on type 'Request<any>'.
TS2339: Property 'query' does not exist on type 'Request<any>'.

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ @types/express 4.17.2 рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@duro @ghostganz рдХреНрдпрд╛ рдЖрдк node_modules , package-lock.json , yarn.lock рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ package.json рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред

рдпрд╣ рд╕рд░рд▓рддрдо package.json yarn install рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди npm install рдпрд╛ yarn install --flat рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

package.json { "dependencies": { "@types/express": "4.17.2", "@types/express-serve-static-core": "4.16.8", "@types/node": "^12.12.5", "typescript": "^3.6.4" } }

рдХреНрдпреЛрдВрдХрд┐ @types/express 4.17.2 (# 38,887) рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ @types/express-serve-static-core 4.16.9 (# 37,718) рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП generic рдЙрдкрдпреЛрдЧред

рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА, рдмрд╕ 4.17.2 рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдЯреВрдЯ рдЧрдпрд╛ред

рдореИрдВрдиреЗ рд╡рд╣реА рдХрд┐рдпрд╛ рдЬреЛ @rockwyc992 рдиреЗ рдкреИрдХреЗрдЬ-рд▓реЙрдХ рдФрд░ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрд╛, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ

рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ 4.17.1 (рдЬрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛) рд╕реЗ 4.17.2 . рддрдХ рдХреВрдж рд░рд╣реА рд╣реИ

рд╡реИрд╕рд╛ рд╣реАред рд░рдирд┐рдВрдЧ rm -rf node modules && rm package-lock.json && npm update рдЙрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдм рдореЗрд░реЗ рд╕рднреА req.params рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдордЬрдмреВрд░ рд╣реЛ рдЧрдП рд╣реИрдВред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдФрд░ рдкреИрдЪ рдирд╣реАрдВред

рд╕рдВрд╕реНрдХрд░рдг 4.17.1 рдФрд░ 4.17.2 рдХреЗ рдмреАрдЪ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреЛ 4.17.0 рдкрд░ рдкрд┐рди рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рд╣реИ:

"dependencies": { "express": "4.17.0" }, "devDependencies": { "@types/express": "4.17.0" }

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛ рдФрд░ рд╕рд╛рде рдЗрд╕реЗ рд╣рд▓ "skipLibCheck": true рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ tsconfig.json

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдФрд░ рдкреИрдЪ рдирд╣реАрдВред

@timshannon рдореИрдВ Express.js рд╕рд╛рде MINOR рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ Express.js рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдирдП рд╕рдВрд╕реНрдХрд░рдг 4.18 рд░рдЦ рд╕рдХреЗрдВред

рдпрд╣ рдПрдХ рдХрдард┐рди рдХрд╛рдо рд╣реИред рдореИрдВ рдпрд╣ рдкреБрд▓ рдЕрдиреБрд░реЛрдз (#38478) 09/19 рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ 11/02 рдкрд░ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдкреВрд░реЗ рдорд╣реАрдиреЗ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рд╢рд╛рдпрдж рдЬрд┐рддрдирд╛ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмрд╛, рдмрд╕ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рд╣реИред

рдЖрдк рд╕рднреА рдХреЛ @types/express рдХрд╛ рдмрдореНрдк рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ Express.js рдХреЛ TypeScript рд╕рд╛рде рдФрд░ рдХрд░реАрдм рдмрдирд╛рдиреЗ рдФрд░ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдХреНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг @types/express-serve-static-core рдореЗрдВ рдЕрджреНрдпрддрди @types/express рдЕрдЧрд░ рдпрд╣ рдХреЗрд╡рд▓ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдХреНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг @types/express-serve-static-core рдореЗрдВ рдЕрджреНрдпрддрди @types/express рдЕрдЧрд░ рдпрд╣ рдХреЗрд╡рд▓ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

package.json рдХрд╛ @types/express @ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдмреЙрдЯ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред

@Pajn рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП? рдпрджрд┐ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ, thxред

рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рддреЛ рдпрд╣ рдПрдХ рдЧрдВрднреАрд░ рд╕реАрдорд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдирд╣реАрдВ рд╣реИ рдЬрдм @types рдкреИрдХ рдореЗрдВ рдкреИрдЪ рдЕрдкрдбреЗрдЯ рдХреЗ рдХрд╛рд░рдг рднрд╛рд░реА рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ рд╣реИред

@DanielRosenwasser @sandersn рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ @types/express рд▓рд┐рдП @types/express-serve-static-core рдХрд╛ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдпрд╛ рдирд╣реАрдВ?

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ yarn remove express-serve-static-core

рдпрд╣ рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ ^4.17.0 рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдпрд╣ рдкрд╛рдпрд╛ред
рд╕рдорд╕реНрдпрд╛ рд▓реЙрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╣реИред рдЖрдкрдХреЛ рдмрд╕ express-serve-static-file рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ yarn рдпрд╛ npm i рдлрд┐рд░ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореЗрд░реА yarn.lock рдлрд╝рд╛рдЗрд▓ рдХреЗ рднреАрддрд░, @types/express рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рдмрд╛рдж 4.17.2 рдмрд╛рдж рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣реА рдерд╛:

"@types/express-serve-static-core@*":
  version "4.16.7"
  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.7.tgz#50ba6f8a691c08a3dd9fa7fba25ef3133d298049"
  integrity sha512-847KvL8Q1y3TtFLRTXcVakErLJQgdpFSaq+k043xefz9raEf0C7HalpSY7OW5PyjCnY8P7bPW5t/Co9qqp+USg==
  dependencies:
    "@types/node" "*"
    "@types/range-parser" "*"

"@types/express@^4.17.2":
  version "4.17.2"
  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.2.tgz#a0fb7a23d8855bac31bc01d5a58cadd9b2173e6c"
  integrity sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA==
  dependencies:
    "@types/body-parser" "*"
    "@types/express-serve-static-core" "*"
    "@types/serve-static" "*"

рдЖрдк рд╕рдВрд╕реНрдХрд░рдг рдмреЗрдореЗрд▓ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдмреНрд▓реЙрдХ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, yarn рдлрд┐рд░ рд╕реЗ, рдФрд░ рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣реА рд╣реИ:

"@types/express-serve-static-core@*":
  version "4.17.2"
  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz#f6f41fa35d42e79dbf6610eccbb2637e6008a0cf"
  integrity sha512-El9yMpctM6tORDAiBwZVLMcxoTMcqqRO9dVyYcn7ycLWbvR8klrDn8CAOwRfZujZtWD7yS/mshTdz43jMOejbg==
  dependencies:
    "@types/node" "*"
    "@types/range-parser" "*"

"@types/express@^4.17.2":
  version "4.17.2"
  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.2.tgz#a0fb7a23d8855bac31bc01d5a58cadd9b2173e6c"
  integrity sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA==
  dependencies:
    "@types/body-parser" "*"
    "@types/express-serve-static-core" "*"
    "@types/serve-static" "*"

рдХреЛрдИ рдФрд░ рдмреЗрдореЗрд▓ рдирд╣реАрдВ, рдФрд░ рдХреЛрдИ рдФрд░ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВред

рдореБрдЭреЗ рдпрд╣ рд╕рднреА рдПрдХреНрд╕рдкреНрд░реЗрд╕-рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ (рдПрдХреНрд╕рдкреНрд░реЗрд╕-рдЬреЗрдбрдмреНрд▓реНрдпреВрдЯреА рд╕рд╣рд┐рдд) рдкрд░ yarn remove рдЪрд▓рд╛рдиреЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛ред

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдпрд╛рд░реНрди рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛:

$ rm -f yarn.lock
$ yarn cache clean
$ yarn

рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдПрдХреНрд╕рдкреНрд░реЗрд╕-рд╕рд░реНрд╡-рд╕реНрдЯреЗрдЯрд┐рдХ-рдХреЛрд░ рдерд╛ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рдерд╛, рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ @ рдЯрд╛рдЗрдкреНрд╕/рдПрдХреНрд╕рдкреНрд░реЗрд╕, рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╕-рд╕рд░реНрд╡-рд╕реНрдЯреЗрдЯрд┐рдХ-рдХреЛрд░ && @ рдкреНрд░рдХрд╛рд░/рдПрдХреНрд╕рдкреНрд░реЗрд╕-рд╕рд░реНрд╡-рд╕реНрдЯреЗрдЯрд┐рдХ-рдХреЛрд░, рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдмреЙрдбреА-рдкрд╛рд░реНрд╕рд░ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдирд╣реАрдВред

рд╡рд┐рдВрдбреЛрдЬрд╝, рдПрдирдкреАрдПрдо рдФрд░ рд╡реАрдПрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХрд╛рд░ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХреЗ рд╕рд╛рде рдореИрдВрдиреЗ рдЗрд╕реЗ %localappdata%\Microsoft\TypeScript\ рдЬрд╛рдХрд░ рддрдп рдХрд┐рдпрд╛, рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: 3.9 рдФрд░ npm install @types/express-serve-static-core рдЪрд▓рд╛рдПрдВ

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореЗрд░реА рдореБрдЦреНрдп рдорд╢реАрди рдХреЗ рд▓рд┐рдП @types/express-serve-static-core рдХреНрдпреЛрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореЗрд░реА рдПрдХ рдФрд░ рддрд╛рдЬрд╛ рдорд╢реАрди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╣рд╛рдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред

рдЕрджреНрдпрддрди:
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ npm update рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╡рд╣рд╛рдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдЕрднреА рднреА 2020 рдореЗрдВ рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ 2020 рдореЗрдВ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдЧрд▓рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ 2017 рд╕реЗ рдЬрд╛рд░реА рд╣реИ рдЬреИрд╕реЗ рдЖрдУ рджреЛрд╕реНрддреЛрдВред

@ xtianus79 TBH, koa рдФрд░ fastify 2020 рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЕрдЪреНрдЫрд╛ рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рд░рд╛рд╕рддреА рдХрд╛рдо рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдЙрддреНрддрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ @types/express-serve-static-core рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд @types/express ред

рдореЗрд░реЗ package.json :

    "@types/express": "^4.17.6",
    "@types/express-serve-static-core": "~4.17.7"

@types/express рдХреЛ "4.17.2" рд╕реЗ "4.17.6" рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИрдВ:

error TS2694: Namespace '"@types/express-serve-static-core/index"' has no exported member 'Query'.
error TS2707: Generic type 'ErrorRequestHandler' requires between 0 and 3 type arguments.
error TS2694: Namespace '"@types/express-serve-static-core/index"' has no exported member 'Query'.
error TS2707: Generic type 'Request<P, ResBody, ReqBody>' requires between 0 and 3 type arguments.
error TS2694: Namespace '"@types/express-serve-static-core/index"' has no exported member 'Query'.
error TS2707: Generic type 'RequestHandler<P, ResBody, ReqBody>' requires between 0 and 3 type arguments.

рдореИрдВрдиреЗ yarn why @types/express-serve-static-core рдХреЙрд▓ рдХрд┐рдпрд╛ рдФрд░ рдЬрд╛рдБрдЪ рдХреА рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:

info Reasons this module exists
   - "@types#express" depends on it
   - Hoisted from "@types#express#@types#express-serve-static-core"

рд░рдирд┐рдВрдЧ yarn upgrade --latest рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдорджрдж рдХреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреА рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдЕрджреНрдпрддрди "@ рдкреНрд░рдХрд╛рд░ / рд╡реНрдпрдХреНрдд-рд╕реЗрд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ рд╕реНрдереИрддрд┐рдХ рдХреЛрд░" рдореЗрдВ yarn.lock ред

рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ, рдирд╡реАрдирддрдо рдПрдХреНрд╕рдкреНрд░реЗрд╕/рдПрдХреНрд╕рдкреНрд░реЗрд╕-рд╕рд░реНрд╡-рд╕реНрдЯреЗрдЯрд┐рдХ-рдХреЛрд░ рдкреНрд░рдХрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдЕрдиреБрд░реЛрдз рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

interface ExampleRequest extends Request {
  example: any
}
// No overload matches this call...
router.use('/api', async function (req:ExampleRequest, res, next) { ... }
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jbreckmckye picture jbreckmckye  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

natejgardner picture natejgardner  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jamespero picture jamespero  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Loghorn picture Loghorn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lilling picture lilling  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ