Moment: [рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ] "рддреНрд░реБрдЯрд┐ TS2304: "рдореЙрдбреНрдпреВрд▓" рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ 'рдкрд▓' рдирд╛рдо рдирд╣реАрдВ рдвреВрдВрдврд╛ рдЬрд╛ рд╕рдХрддрд╛: "рдХреЛрдИ рдирд╣реАрдВ"

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдлрд╝рд░ре░ 2017  ┬╖  51рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: moment/moment

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧреИрд░-рдореЙрдбреНрдпреВрд▓ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд╡реИрд╢реНрд╡рд┐рдХ moment() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред

рдЯреАрдПрд╕рд╕реА рд╕рдВрд╕реНрдХрд░рдг: 2.1.6
рдкрд▓ рд╕рдВрд╕реНрдХрд░рдг: 2.17.1

рд░реЗрдкреНрд░реЛ (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ tsc рдЖрдкрдХреЗ $PATH ):

$ mkdir repro && cd repro
$ npm i moment
$ echo 'const now = moment();' > test.ts
$ tsc --module none test.ts
test.ts(1,13): error TS2304: Cannot find name 'moment'.

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

$ echo 'import * as moment from "moment"; const now = moment();' > test2.ts
$ tsc --module commonjs test2.js

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореЗрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдВрдбрд▓рд░ рдпрд╛ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП "module": "none" рдХреЗ рд╕рд╛рде рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВред

рдХреНрдпрд╛ typings install --save --global dt~moment рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдореЗрд░рд╛ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИ?

TypeScript Up-For-Grabs

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

+1 рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ

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

рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк tsconfig.json рдореЗрдВ рдХреМрди рд╕рд╛ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ @rossipedia . рдЬреИрд╕реА рд╣реА рддреНрд░реБрдЯрд┐

рдореИрдВрдиреЗ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХреА рд╕реВрдЪрдирд╛ рджреА (https://github.com/moment/moment/issues/3663), рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред

рдореИрдВрдиреЗ рдЕрдкрдиреА moment.d.ts рдХреЛ рдЕрдкрдиреА /scripts/app рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдФрд░ https://github.com/moment/moment/issues/3663#issuecomment -273199291 рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реБрдзрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдПрдХ рдЕрдзрд┐рдХ рд╕реНрдерд╛рдпреА рд╕реБрдзрд╛рд░ рдЕрдВрддрддрдГ moment.d.ts рдореЗрдВ рдЕрдкрдирд╛ рд░рд╛рд╕реНрддрд╛ рдмрдирд╛ рд▓реЗрдЧрд╛ред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ tsconfig рдореЗрдВ "moduleResolution": "node" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд╛рд▓ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

"moduleResolution": "node" рдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ

@rossipedia рдореБрдЭреЗ рдпрд╛ рддреЛред

рдХреНрдпрд╛ рдпрд╣ export as namespace moment; рдХреЛ moment.d.ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛?

рджреЗрдЦреЗрдВ: https://github.com/moment/moment/issues/3808

@czb рдЬрд┐рд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ :(

рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреБрдЫ рд╣реИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реЛрдВ рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд▓реЗ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рдЯрди рдореБрджреНрджреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдмрд╕ рдЗрд╕реЗ рдЕрдкрдиреА рдЦреБрдж рдХреА рдПрдХ рдХрд╕реНрдЯрдо рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рдкреЗрдЯреЗрдВред рдпрд╣ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ 2.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдореИрдВ npmjs.org рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рдХрдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдкреВрд░реА рдЪреАрдЬ рдХреЛ рд╕реНрд░реЛрдд рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

tsconfig.json

"compilerOptions": {
    "target": "ES5",
    "moduleResolution": "node",
    ...
}

рдкрд▓.рдХрд╕реНрдЯрдо.рдбреА.рдЯреАрдПрд╕

import * as _moment from 'moment';
export as namespace moment;
export = _moment;

рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЬрдм рд╡рд╣ рдХреЛрдб рд╕реАрдзреЗ moment.d.ts рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡рд╣ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдореИрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд▓реЗрдХрд┐рди рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдмрдЧ рдореЗрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ tsc рдореЗрдВ рд╡рд░реНрдмреЛрдЬрд╝ рдореЛрдб рдирд╣реАрдВ рд╣реИ (рдЬрд┐рд╕реЗ рдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ) рдЬреЛ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рдЪреАрдЬреЗрдВ рдХрд╣рд╛рдВ рдЧрд▓рдд рд╣реЛ рд░рд╣реА рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк "module": "none" рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ node_modules/moment рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдирд╣реАрдВ рдвреВрдВрдврддрд╛ рд╣реИред рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ node_modules/@types рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рджреЗрдЦ рд░рд╣рд╛ рд╣реИред рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдпреЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

  1. moment.d.ts рддрд╣рдд node_modules/@types/moment рдХреЙрдкреА рдХрд░реЗрдВ
  2. рдЕрдкрдиреА .ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ /// <reference path="./node_modules/moment/moment.d.ts" /> рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
  3. tsc --typeRoots node_modules test.ts рдХреЙрд▓ рдХрд░реЗрдВ
  4. рд░рдЦреЛ ./node_modules/moment/moment.d.ts рдореЗрдВ files рдХреА рдзрд╛рд░рд╛ tsconfig.json

рдЖрдкрдХреЛ export as namespace moment; рдХреЛ moment.d.ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдореЛрдореЗрдВрдЯ рдЯреАрдо рдХрд┐рд╕реА рднреА рдкреАрдЖрд░ рдХреЛ рдкрд╕рдВрдж рдХрд░реЗрдЧреА рдЬреЛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЯреАрдПрд╕ 1.x рд╕рдВрдЧрдд рд░рд╣реЗрдЧрд╛ред

рдореБрдЭреЗ рдЕрднреА рднреА рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдХрд░реВрдБрдЧрд╛ рддреЛ рдореИрдВ рдПрдХ рдкреАрдЖрд░ рдЬреЛрдбрд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдБрдЧрд╛

# 3663 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрдВрдбрд▓рд░ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рд╕реБрдзрд╛рд░...

  • moment.d.ts рдХреЛ node_modules/moment/ рд╕реЗ node_modules/@types/moment рдХреЙрдкреА рдХрд░реЗрдВ

  • export = moment; рдХреЛ moment.d.ts рдмрджрд▓реЗрдВ

declare module "moment" {
    export = moment;
}
  • moment.d.ts рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ index.d.ts

рдмрд╕ рдкрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ рд╕рдВрдкрд╛рджрдХ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрдирд╛рдо рдХреЛрдб) рдФрд░ рдЯреАрдПрд╕рд╕реА рдХреЛ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП

+1 рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ

@mtgibbs рдЖрдк рдХреНрд╖рдг.custom.d.ts рдлрд╝рд╛рдЗрд▓ рдХрд╣рд╛рдБ рд░рдЦ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЗрд╕ custom.d.ts рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдРрдк рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?

@elSteeze

рд╣рд╛рдБ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ tsconfig.json рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдБред рдпрд╣рд╛рдБ рдПрдХ рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

{
  "compilerOptions": {
    "target": "ES5",
    "moduleResolution": "node",
    "typeRoots": [
      "./node_modules/@types"
    ]
  },
  "compileOnSave": true,
  "exclude": [
    "node_modules",
    "./path/to/typings/**/*.d.ts",
    "./typings"
  ],
  "include": [
    "./path/to/typings/moment.custom.d.ts",
    "./path/to/src/**/*.ts"
  ]
}

@mtgibbs рдЕрд░реЗ рдзрдиреНрдпрд╡рд╛рдж рдЖрджрдореА! рд╢реАрдШреНрд░ рдЙрддреНрддрд░ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВред рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рджреВрдВрдЧрд╛ред

@mtgibbs рдкреНрд░рд╢реНрди рдХреА рддрд░рд╣ рдПрдХ рдФрд░ рдорд┐рд▓рдиреА рд╢реБрд░реВ рд╣реЛ рдЧрдИрдВ ...

'moment' refers to a UMD global, but the current file is a module. Consider adding an import instead

рдореИрдВрдиреЗ рдХреБрдЫ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╢реЛрдз рдХрд┐рдпрд╛ рдФрд░ рдХреНрд╖рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдХрд░ рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдареАрдХ рдирд╣реАрдВ рд╣реБрдИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЙрди рдЕрдЬреАрдм рджреЗрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдЕрдкрдирд╛ рдХреЛрдб рдбреАрдмрдЧ рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЧреНрд░реЗрдб рд╣реВрдВ рдФрд░ рдореИрдВ рдХреЛрдгреАрдп 2 рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВ

рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдЕрджреНрдпрддрди рдореЙрдбреНрдпреВрд▓ рд╣реИредcustom.d.ts

declare var moment: any;
declare var module: NodeModule;
interface NodeModule {
    id: string;
}
import * as _moment from 'moment';
export as namespace moment;
export = _moment;

рдХреЛрдИ рджрд┐рдХреНрдХрдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдХреЛрдгреАрдп 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ 2.0+ TS рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдХреЛрдгреАрдп рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред рдЖрдк рдЕрдкрдиреЗ tsconfig.json рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЙрд╕реЗ рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдФрд░ рдореИрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рдмрд╛рдж рджреЗрдЦ рд▓реВрдВрдЧрд╛ред

рдЬрд╝рд░реВрд░!

рдпрд╣ рдореЗрд░реА рдкреВрд░реА tsconfig.es5.json рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рдореЗрд░реЗ рдХреЛрдгреАрдп 2 рдореЙрдбреНрдпреВрд▓ рдХреА src рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рд╣реИред
рдореИрдВ рд╡реИрд╕реЗ рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ

{
  "compilerOptions": {
    "declaration": true,
    "module": "es2015",
    "target": "es5",
    "baseUrl": ".",
    "stripInternal": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "outDir": "../build",
    "rootDir": ".",
    "lib": [
      "es2015",
      "dom"
    ],
    "skipLibCheck": true,
    "typeRoots": [
      "./node_modules/@types"
    ]
  },
  "compileOnSave": true,
  "exclude": [
    "node_modules",
    "./typings/**/*.d.ts",
    "./typings"
  ],
  "include": [
    "./typings/moment.custom.d.ts",
    "./src/**/*.ts"
  ],
  "angularCompilerOptions": {
    "annotateForClosureCompiler": true,
    "strictMetadataEmit": true,
    "skipTemplateCodegen": true,
    "flatModuleOutFile": "new-version-library.js",
    "flatModuleId": "new-version-library"
  },
  "files": [
    "./index.ts"
  ]
}

рдЖрдк TS рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рдВрдХрд▓рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЖрдк рдореЗрд░реА рд╣реИрдХ рдХреЗ рдмрд┐рдирд╛ рдмрд╕ рд╢реАрд░реНрд╖ рдкрд░ рдкрд▓ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@mtgibbs рдореИрдВ v2.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдпрд╣реА рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рд▓рдЧрднрдЧ рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореИрдВ рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдЬреЛ рд╣рдо рдХреНрд╖рдгрдЬ рд╕реЗ рд▓реЗ рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред

@elSteeze

рдареАрдХ рд╣реИ, рдпрд╣рд╛рдБ рд╡рд╛рдкрд╕ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдХрд╕реНрдЯрдо рдмрдирд╛рдпрд╛ рд╣реИ module.custom.d.ts , рд▓реЗрдХрд┐рди рддрдм рддреБрдо рдореЗрд░реЗ рдХреЛ рджреЗрдЦреЗрдВ moment.custom.d.ts рдЕрдкрдиреЗ рдореЗрдВ tsconfig.json ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ moment.custom.d.ts рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ, рдЙрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдорд╛рди рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдЗрд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рдлрд┐рд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

/// <reference path="path/to/your/moment.custom.d.ts" />

рдЗрд╕рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕реЗ рдореЗрд░реЗ рдореВрд▓ рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рдиреА рдЪрд╛рд╣рд┐рдПред

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рдзрдиреНрдпрд╡рд╛рдж @mtgibbs ! рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдкрде рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓ рджреА рд╣реИред рддреЛ рд╡реЗ рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рд╣реИрдВред
рдЪреАрдпрд░реНрд╕ рджреЛрд╕реНрдд!

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  • рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреНрд╖рдг рдореЗрдВ // export = moment рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВред d.ts рдлрд╝рд╛рдЗрд▓
  • node_modules/moment/moment.d.ts рдХреЛ tsconfig.json

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╕рдВрд╢реЛрдзрд┐рдд moment.d.ts рдХреЛ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ tsconfig.json рдореЗрдВ рдкрде рдЬреЛрдбрд╝реЗрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ tsconfig.json рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ "module":"none" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдХреЛрдИ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХрд╛ рдЖрдпрд╛рдд рдпрд╛ рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рддрдм рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред

рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдЖрдпрд╛рдд * "рдкрд▓" рд╕реЗ рдкрд▓ рдХреЗ рд░реВрдк рдореЗрдВ;

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛

рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдЖрдпрд╛рдд * "рдкрд▓" рд╕реЗ рдкрд▓ рдХреЗ рд░реВрдк рдореЗрдВ;
рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдирд╛рдорд╕реНрдерд╛рди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЕрдХреНрд╖рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП +1 рдХрд░реЗрдВ

рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ? рдмрд╣реБрдд рдЬрд░реБрд░реА рд╣реИред

"module": "commonjs" рдХреЛ tsconfig.json рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рд╣реЛ рдЧрдпрд╛

рд▓реЗрдХрд┐рди рдореБрдЭреЗ "module": "none" ред рдХреЙрдордирдЬ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдЗрд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2.9 рдХреА рдЖрдпрд╛рдд рдкреНрд░рдХрд╛рд░ рд╕реБрд╡рд┐рдзрд╛ import рдЖрдИрдПрдирдЬреА рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдореИрдВ TS 3.0.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдпрд╣ рдЕрдм рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ? рдпрд╣ рдХрдо рд╕реЗ рдХрдо рд▓реАрдХ рд╕реЗ рд╣рдЯрдХрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ , рдЯреАрдПрд╕ 3.0.1 рдХреЗ рд╕рд╛рде рдореИрдВ рдмрд╕ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рдерд╛:

declare var moment: typeof import("moment");

рд╣реБрд░реНрд░реЗ!

tsconfig . рдХреЗ рд╕рд╛рде

{
    "compilerOptions": {
        "module": "none"
        "moduleResolution": "node", 
        // ...
    }
}

TS 3.0.1 рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ (рдФрд░ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд░реНрд╖рдг рдХреЗ рдбреЗрдврд╝ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдЦреБрд▓рд╛ рд╣реИ)

рд╣рд╛рдп рд░реЛрд╕реАрдкреАрдбрд┐рдпрд╛,
рдореИрдВ рдХреЛрдгреАрдп -6 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕реЗ TS 3.0.1 рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди angular6 CLI рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг 3.0.1 рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдХрд┐рд╕реА рдФрд░ рдХреЛ рднреА @types/moment npm рдкреИрдХреЗрдЬ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ рдХрд┐ рд╕рд┐рд░реНрдл рдПрдХ рдЖрдзрд╛рд░ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдкрд▓ рдкреИрдХреЗрдЬ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ?

... рд╣рд░ рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд▓ рдХреЛ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ? рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореМрдЬреВрдж рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдЬреВрдЭ рд░рд╣реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд╣рдЬрд╛рд░реЛрдВ рдШрдВрдЯреЗ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдПред

рдЬрд╝рд░реВрд░, @Ciantic рдХрд╛ рд╕рдорд╛рдзрд╛рди TS 3.0.1 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ declare var moment: typeof import("moment"); рд░рд╣реЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.0.1 рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдорд╛рдзрд╛рди рджреЗрддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рд╕рд┐рд░реНрдл рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рджреЗрддрд╛ рд╣реИред

рд╣рд╛рдБ, рдареАрдХ рдпрд╣реА рд╣реИред рдпрд╣ рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп "рдлрд┐рдХреНрд╕" рдирд╣реАрдВ рд╣реИред

рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рджрд┐рди рд░рд╣рд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЕрднреА рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рд╣реИ рдХрд┐ рдЯреАрдПрд╕ 3.0.1 рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗрд╡рд▓ moment рдлрд╝рдВрдХреНрд╢рди рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдирд╛рдорд╕реНрдерд╛рди/рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВред рддреЛ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдХреНрд╖рдг рд╡рд╕реНрддреБ рдХреЛ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ:

image

рдХреГрдкрдпрд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ, рдпрд╛ рдмреЗрд╣рддрд░: .dts рдлрд╝рд╛рдЗрд▓ рдХреЛ рдареАрдХ рдХрд░реЗрдВред

рдореВрд▓ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдЧреБрдЧрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП: tsconfig.json рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ (рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.3.3 рдФрд░ рдХреНрд╖рдг 2.24.0)

{
  "compilerOptions": {
    "module": "commonjs"
  }
}

рдореИрдВ рдЕрдм рдЗрди рджрд┐рдиреЛрдВ рдЕрдзрд┐рдХ рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдЕрднреА рднреА рдорд╛рдиреНрдп рд╣реИ рддреЛ рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред

src/app/services/get-list.service.ts (22,54) рдореЗрдВ рддреНрд░реБрдЯрд┐: рддреНрд░реБрдЯрд┐ TS2304: рдирд╛рдо '_' рдирд╣реАрдВ рдвреВрдБрдв рд╕рдХрддрд╛ред

рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реИ??

@nagipogu рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдореБрджреНрджрд╛ рдкрд▓ рдХреЗ рд▓рд┐рдП рд╣реИред рдЕрдВрдбрд░рд╕реНрдХреЛрд░.рдЬреЗрдПрд╕ рдХреЗ рдЬреАрдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЦреЛрд▓реЗрдВред

рдореИрдВ рдЯреАрдПрд╕ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкрд▓ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рд░рд╣рд╛ рд╣реВрдВред рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдлрд▓ рдЙрдкрд╛рдп рд╣реИ?

рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди yarn add -W [email protected] ред

рдЬрдм рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рдХреНрд╖рдг рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░ node_modules/moment/package.json рдореЗрдВ рджреЗрдЦрд╛, рддреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛: https://github.com/moment/moment/blob/develop/package.json#L29 - рд▓реЗрдХрд┐рди рдХреЛрдИ рдореМрдЬреВрджрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ рдереА node_modules/moment/ts3.1-typings , рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ TS рдЗрд╕реЗ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдпрд╛ рдкреИрдХреЗрдЬ) рдХреЗ рд╕рд╛рде рдХреБрдЫ рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ tsconfig.json рдореЗрдВ "module": "esnext" рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ 2.25.0 рдХреЗ рд╕рд╛рде рдЯреВрдЯ рдЧрдпрд╛:

рдореИрдВрдиреЗ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ pnpm рдРрдб рдореЛрдореЗрдВрдЯ@2.24.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ 2.25.0 рдХреЗ рд╕рд╛рде рдЯреВрдЯ рдЧрдпрд╛:

рдореИрдВрдиреЗ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ pnpm рдРрдб рдореЛрдореЗрдВрдЯ@2.24.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░реЛ, рдзрдиреНрдпрд╡рд╛рдж

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ 2.25.0 рдХреЗ рд╕рд╛рде рдЯреВрдЯ рдЧрдпрд╛:

рдореИрдВрдиреЗ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ pnpm рдРрдб рдореЛрдореЗрдВрдЯ@2.24.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдпрд╣рд╛рдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛: "рдирд┐рд░реНрднрд░рддрд╛" {"рдкрд▓": "^ 2.24.0",
}... рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ рдзрдиреНрдпрд╡рд╛рджред

2.24.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рднреА рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рд╣реБрдЖред 2.25.0 рдореЗрдВ рдкреНрд░рддрд┐рдЧрдорди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рдХреНрдпрд╛ 2.25.3 рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ?

рдРрд╕реА рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд╣рд╛рдВ Moment.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, TS 1.x, TS 2.x, TS 3.x... рдХреА рддреЛ рдмрд╛рдд рд╣реА рдЫреЛрдбрд╝рд┐рдПред
рдореБрдЭреЗ рдРрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдореЗрдВ рдЭрд┐рдЭрдХ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдореВрд╣ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ https://github.com/moment/momentjs.com/ рдкрд░ рдкреЛрд╕реНрдЯ

рдХреНрдпрд╛ 2.25.3 рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ?

рд╣рд╛рдВред

2.24.0 рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рдЬрдм 2.25.1 рдореЗрд░реЗ рд▓рд┐рдП рдПрдВрдЧреБрд▓рд░ 9 рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред 2.25.3 рдХреЗ рд╕рд╛рде рдпрд╣ рдлрд┐рд░ рд╕реЗ рдЯреНрд░реИрдХ рдкрд░ рд╣реИред

рдареАрдХ рд╣реИ рдЕрдЪреНрдЫрд╛ рд╣реИред рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ред

рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЪрд┐рдВрддрд┐рдд рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ (рдпрд╛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВ)ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕