Typescript: рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдпреВрдПрдордбреА рдЧреНрд▓реЛрдмрд▓реНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдЕрдЧре░ 2016  ┬╖  73рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: microsoft/TypeScript

# 7125 рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдФрд░ рдЖрдпрд╛рддрд┐рдд рдпреВрдПрдордбреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг рдФрд░ рдорд┐рд▓рд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдирд╣реАрдВ рдорд╛рдирд╛ рдерд╛ред

рддреАрди рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╡рд┐рдХрд▓реНрдк:

  1. рдЖрдЬ рд╣рдо рд╡рд╣реА рдХрд░реЗрдВ - рдЬреЛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмреБрд░рд╛ рд╣реИ
  2. рдХреБрдЫ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдпрд╣ рдХрд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ "рдпрд╣ рдпреВрдПрдордбреА рдЧреНрд▓реЛрдмрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ" - рдХреБрдЫ рдЬрдЯрд┐рд▓, рд▓реЗрдХрд┐рди рдЙрд▓реНрд▓реЗрдЦрдиреАрдп
  3. рд╕рдВрджрд░реНрдн рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рднреА рдпреВрдПрдордбреА рдЧреНрд▓реЛрдмрд▓реНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ - рдЙрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд▓реЛрдЧ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдпреВрдПрдордбреА рд╡реИрд╢реНрд╡рд┐рдХ рдЖрдпрд╛рдд рдХрд░рдирд╛ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдпреЗ рд╕рдВрднрд╡рддрдГ рдХреБрдЫ рджреБрд░реНрд▓рдн рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреВрдВрдЧрд╛ рд╣реЛрдЧрд╛

рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛:

  1. UMD рдореЙрдбреНрдпреВрд▓ рдХреЛ "рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ" рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЭрдВрдбрд╛ - рдЦрд░рд╛рдм рд╣реИ рдХреНрдпреЛрдВрдХрд┐ UMD рдореЙрдбреНрдпреВрд▓ рдореЙрдбреНрдпреВрд▓ рд╡реГрджреНрдзрд┐ рдХреЗ рджреМрд░рд╛рди рдШреЛрд╖рдгрд╛ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдШреЛрд╖рдгрд╛ рдлрд╛рдЗрд▓реЛрдВ рдмрдирд╛рдо рдШреЛрд╖рдгрд╛ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдЖрдпрд╛рдд рдХреЗ рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╣реЛрдирд╛ рдЕрдЬреАрдм рд╣реЛрдЧрд╛ред

рдореИрдВ рд╕рд╛рджрдЧреА рдХреА рдЦрд╛рддрд┐рд░ рд╡рд┐рдХрд▓реНрдк 3 рдХреА рдУрд░ рдЭреБрдХрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд▓реНрдк 2 рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдХреБрдЫ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ рддреЛ рд╣рдо рддрд╛рд░реНрдХрд┐рдХ рдЬрдЧрд╣ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред TSLint рдирд┐рдпрдо рдореЗрдВ UMD рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕реАрдзрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред

рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЖрдЧреЗ рд╡рд┐рдХрд▓реНрдк 3 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрдЧрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд▓реЛрдЧ рдЕрдХреНрд╕рд░ "рдЖрдпрд╛рдд рдХрд░рдирд╛ рднреВрд▓ рдЧрдП" рддреНрд░реБрдЯрд┐ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ tsconfig рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВ globals: [] рдЬреЛ рдХрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ UMD рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред

Add a Flag Committed Suggestion good first issue help wanted

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

рдЗрд╕ рдкрд░ +1ред рдореИрдВ рд╕рд┐рд░реНрдл SystemJS рдХреЗ рд╕рд╛рде React рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ React рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдВрдбрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рд╕реАрдзреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдореЗрдВ CDN рд╕реЗ рд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ React / ReactDOM рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдореИрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд░рдирдЯрд╛рдЗрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрдВрдбрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд░реЛрд▓рдЕрдк) рдЬреЛ рд▓реЛрдб рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ import from рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо рдХреЗ рд▓рд┐рдП рдПрдХ рджрд░реНрдж (рдФрд░ рдЭреВрда) рд╣реИ, рдФрд░ рдлрд┐рд░ рд▓реЛрдбрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ, рдпреЗ рдЧреНрд▓реЛрдмрд▓реНрд╕ рд╣реИрдВ" рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП https рдореЗрдВ рджрд┐рдП рдЧрдП рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди: / /www.typescriptlang.org/docs/handbook/react-&-webpack.html)ред рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ (рдФрд░ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ) рдмрд╕ рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдореИрдВрдиреЗ рдЬреЛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП, рдЬреИрд╕реЗ рд╡реЗ рд╕рд╣рдЬ рд▓рдЧ рд░рд╣реЗ рдереЗ, рд╡реЗ рдереЗ:

  1. npm install --save-dev @types/react @types/react-dom
  2. рдореЗрд░реЗ tsconfig.json рдореЗрдВ: "jsx": "react", "types": ["react", "react-dom"]
  3. рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ: export function MyComponent() { return <div>{"Hello, world"}</div>; }
  4. рдЗрд╕реА рдкреНрд░рдХрд╛рд░: ReactDOM.render(...)

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ React refers to a UMD global, but the current file is a module. Consider adding an import instead рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред

рдпрджрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЛрдб рдореЗрдВ рдмрд╣рд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╣реЛрдЧрд╛, рдлрд┐рд░ рд▓реЛрдбрд░ / рдмрдВрдбрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЬреЛ рдпрд╣ рдирд╣реАрдВ рд╣реИред (рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдиреАрдЪреЗ рджреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХреНрдпрд╛ рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдереАред рдЕрдм рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ ReactDOM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝реЗ рдмрджрд╕реВрд░рдд / рд╣реИрдХреА рд╣реИ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ' рдпрд╛рдж рдХрд┐рдпрд╛)

import * as ReactObj from "react";
import * as ReactDOMObj from "react-dom";

declare global {
    var React: typeof ReactObj;
    var ReactDOM: typeof ReactDOMObj;
}

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

рд╕рдВрджрд░реНрдн рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рднреА рдпреВрдПрдордбреА рдЧреНрд▓реЛрдмрд▓реНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреЗрд╡рд▓ рдпреВрдПрдордбреА рдЧреНрд▓реЛрдмрд▓ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпреВрдПрдордбреА рдореЙрдбреНрдпреВрд▓ рдХреЛ ///<reference types=<>> рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ "рд╕рдВрджрд░реНрднрд┐рдд" (рдЖрдпрд╛рддрд┐рдд рдирд╣реАрдВ) рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред , рдпрд╛ tsconfig.json рдореЗрдВ types рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ?

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рднреАрддрд░ ///<reference types=<>> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ?

рдЕрдЧрд░ рд╣рдордиреЗ рдХрд╣рд╛ рдХрд┐ /// <reference type="x" /> рдорддрд▓рдм рд╣реИ рдХрд┐ x рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз _everywhere_ рдерд╛, рддреЛ рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ .d.ts рдлрд╝рд╛рдЗрд▓ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрджрд░реНрдн рд╡рд╛рд▓реА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣реА рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдирд╣реАрдВ рд╣реИрдВ; рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ 2.0 рд╢рд╛рдЦрд╛ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐ рд╣реИ)ред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдпрджрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ _ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рддреЛ рдЖрдк рдХреЛ рд╕рднреА рдЬрдЧрд╣ рд╕рдВрджрд░реНрдн рдирд┐рд░реНрджреЗрд╢ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред рдпреЗ рдирд┐рд░реНрджреЗрд╢ рдЖрдо рддреМрд░ рдкрд░ рдЙрджрд╛рд╕реАрди рд╣реЛрддреЗ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЕрдЬреАрдм рд╣реИред

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

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣ рджреЗрдЦрдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдпрд╣ рдЕрдкрдиреЗ рдЕрд▓рд╛рд╡рд╛ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗрд╡рд▓ рд▓реЛрдЧреЛрдВ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд▓рд╛рдпрди рдХрд░рдиреЗ рдпрд╛ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рд╣реИред рдпрджрд┐ рдЕрдиреНрдп рд▓реЛрдЧ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреЗрдВ рдХрд┐ рдЖрдк рдХрд┐рди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХреЗрдВред

рдореИрдВ рд▓реЙрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рд╕реНрд╡рдпрдВ рдХреЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд╣рд╛рдВ рдореЗрд░реЗ рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдкрде рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрдерд╛рдиреАрдп рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдкрде рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рд░рд┐рд╢реНрддреЗрджрд╛рд░реЛрдВ ('./oo' рдХреЗ рд╕рд╛рде-рд╕рд╛рде 'рдПрди / рдмрд╛рд░') рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИред

рдЕрдЧрд░ рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ @types/lodash/index.d.ts рд╕реЗ node_modules/lodash/ рдХреЙрдкреА рдХрд░реВрдВ рддреЛ рдореБрдЭреЗ рдЯрд╛рдЗрдкреЗрдХ рдХрд░рдиреЗ рдХреА рдЪреАрдЬреЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВред

рдЕрдм рддрдХ рдореЗрд░рд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб ///<amd-dependency path='../lodash' name="_"> (рдФрд░ import рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕ рдХреЙрдореНрдмреЛ рдХреЗ рд╕рд╛рде, рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ @ рдкреНрд░рдХрд╛рд░ / рд▓реЙрд╢ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ 'рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░' рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЕрднреА рднреА рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдЬреЗрдПрд╕ рдореЗрдВ рд╕рд╣реА рд╕рд╛рдкреЗрдХреНрд╖ рдкрде ( ../lodash ) рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдХрд╛рдлреА рдХрд░реАрдм рд╣реИ?

рдХреНрдпрд╛ рдЖрдк рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реЛ

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд╣рд╛рдВ рдореЗрд░реЗ рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдкрде рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИред

рддрдерд╛

рдЕрдЧрд░ рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ @types/lodash/index.d.ts рд╕реЗ node_modules/lodash/ рдХреЙрдкреА рдХрд░реВрдВ рддреЛ рдореБрдЭреЗ рдЯрд╛рдЗрдкреЗрдХ рдХрд░рдиреЗ рдХреА рдЪреАрдЬреЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВред

рдХреГрдкреНрдпрд╛? рдореИрдВ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рд╣рд╛рдпрдХ рдХреНрдпреЛрдВ рд╣реИ?

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ,

рдореИрдВ рд╡рд░реНрддрдорд╛рди @types/bluebird рдШреЛрд╖рдгрд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдврдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реВрдВ (рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдордп рд╡реНрдпрддреАрдд рди рдХрд░реЗрдВ)ред рдореИрдВрдиреЗ рдкрд╛рдпрд╛, рдХрд┐ .d.ts рдореЗрдВ export as namespace Promise; рдЬреЛрдбрд╝рдХрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореИрдВ рдЗрд╕ github рдореБрджреНрджреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реВрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореИрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд╛рд╣реВрдВрдЧрд╛:

  1. git clone -b vanilla-es5-umd-restriction-problem https://github.com/d-ph/typescript-bluebird-as-global-promise.git
  2. cd typescript-bluebird-as-global-promise
  3. npm install
  4. export as namespace Promise; export = Bluebird; рд▓рд╛рдЗрди рд╕реЗ рдКрдкрд░ рдЬреЛрдбрд╝рдХрд░ node_modules/@types/bluebird/index.d.ts рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред
  5. npm run tsc

рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдгрд╛рдо:
'Promise' refers to a UMD global, but the current file is a module. Consider adding an import instead. рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реАред

рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо:
рд╕рдВрдХрд▓рди рд╕рдлрд▓ рд╣реБрдЖред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдард┐рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреЗрд╡ рдХреЗ рдХреЛрдб рдФрд░ 3rd рдкрд╛рд░реНрдЯреА рдХреЛрдб (рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ RxJS) рджреЛрдиреЛрдВ рдореЗрдВ Promise рдЙрдкрдпреЛрдЧ рд╕реЗ рдЪрд╛рд▓реВ рд╣реИред рдмрд╛рдж рд╡рд╛рд▓рд╛ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ Promise рд╡реИрд╢реНрд╡рд┐рдХ рд╣реИ (рдЬреЗрдПрд╕ рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП import Promise from std; // (not that "std" is a thing) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрднреА рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпреВрдбреАрдПрдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЧреНрд▓реЛрдмрд▓реНрд╕ рджреЛрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдзрдиреНрдпрд╡рд╛рджред

----------------------------- рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ (рдЬреИрд╕реЗ: Promise рдФрд░ PromiseConstructor рдЗрдВрдЯрд░рдлреЗрд╕ рд╡реГрджреНрдзрд┐)ред

"globals": [] tsconfig рд╡рд┐рдХрд▓реНрдк рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдмреЗрд╣рддрд░ рд▓рдЧрддрд╛ рд╣реИред UMD рдШреЛрд╖рдгрд╛ рдХреЗ рдЖрджрд░реНрд╢ рдмрдирдиреЗ рдХреЗ рд╕рд╛рде, рдЧрд▓рддреА рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рднреВрд▓ рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИред рдХреГрдкрдпрд╛ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдЕрдирд╛рдпрд╛рд╕ рд╣реА рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдЬрдм рдПрдХ рдкрд▓ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдкрд▓ window.moment рдЪрд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╣рдо рд╡рд┐рд╡реЗрдХрдкреВрд░реНрдг рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕реЗ рд╣рд░ рдЬрдЧрд╣ рдЖрдпрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо 5 рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдП рдереЗред

рдмреЗрд╢рдХ рдПрдХ UMD рдкреИрдХреЗрдЬ рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЙрд╕ рдХреНрд░рдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЗрд╕ рдкрд░ +1ред рдореИрдВ рд╕рд┐рд░реНрдл SystemJS рдХреЗ рд╕рд╛рде React рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ React рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдВрдбрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рд╕реАрдзреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдореЗрдВ CDN рд╕реЗ рд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ React / ReactDOM рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдореИрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд░рдирдЯрд╛рдЗрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрдВрдбрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд░реЛрд▓рдЕрдк) рдЬреЛ рд▓реЛрдб рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ import from рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо рдХреЗ рд▓рд┐рдП рдПрдХ рджрд░реНрдж (рдФрд░ рдЭреВрда) рд╣реИ, рдФрд░ рдлрд┐рд░ рд▓реЛрдбрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ, рдпреЗ рдЧреНрд▓реЛрдмрд▓реНрд╕ рд╣реИрдВ" рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП https рдореЗрдВ рджрд┐рдП рдЧрдП рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди: / /www.typescriptlang.org/docs/handbook/react-&-webpack.html)ред рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ (рдФрд░ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ) рдмрд╕ рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдореИрдВрдиреЗ рдЬреЛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП, рдЬреИрд╕реЗ рд╡реЗ рд╕рд╣рдЬ рд▓рдЧ рд░рд╣реЗ рдереЗ, рд╡реЗ рдереЗ:

  1. npm install --save-dev @types/react @types/react-dom
  2. рдореЗрд░реЗ tsconfig.json рдореЗрдВ: "jsx": "react", "types": ["react", "react-dom"]
  3. рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ: export function MyComponent() { return <div>{"Hello, world"}</div>; }
  4. рдЗрд╕реА рдкреНрд░рдХрд╛рд░: ReactDOM.render(...)

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ React refers to a UMD global, but the current file is a module. Consider adding an import instead рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред

рдпрджрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХреЛрдб рдореЗрдВ рдмрд╣рд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╣реЛрдЧрд╛, рдлрд┐рд░ рд▓реЛрдбрд░ / рдмрдВрдбрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЬреЛ рдпрд╣ рдирд╣реАрдВ рд╣реИред (рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдиреАрдЪреЗ рджреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХреНрдпрд╛ рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдереАред рдЕрдм рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ ReactDOM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝реЗ рдмрджрд╕реВрд░рдд / рд╣реИрдХреА рд╣реИ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ' рдпрд╛рдж рдХрд┐рдпрд╛)

import * as ReactObj from "react";
import * as ReactDOMObj from "react-dom";

declare global {
    var React: typeof ReactObj;
    var ReactDOM: typeof ReactDOMObj;
}

рдореИрдВ рд╡рд┐рдХрд▓реНрдк рддреАрди рдкреНрд▓рд╕ рдЧреНрд▓реЛрдмрд▓реНрд╕ рд╕реЗ рднреА рд╕рд╣рдордд рд╣реВрдВ: [] рдмреИрдХрдЕрдкред рдпрд╣ рдирдП рдФрд░ рдкреБрд░рд╛рдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╣рдЬ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕рдХреА рд╕рдЯреАрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред

рдореИрдВ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ 2 рдЕрдзрд┐рдХ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣рдЬ рднреА рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реАрдзрд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдХрд╣рд╛рдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдзреНрд╡рдЬ рдХреЗ рдкреАрдЫреЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдЦрддрд░рд╛ рд╣реИред рднрд▓реЗ рд╣реА рдзреНрд╡рдЬ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╣реА рд╣реЛред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдореВрд▓ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЕрдиреНрдпрдерд╛ рд╣рдо UMD рдШреЛрд╖рдгрд╛рдУрдВ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд▓рд╛рдн рдЦреЛ рд░рд╣реЗ рд╣реИрдВред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдВрдбрд▓ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ

@ рдмрд┐рд▓реНрдЯреА рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╕реНрддреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ import from рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо рдХреЗ рд▓рд┐рдП рдПрдХ рджрд░реНрдж (рдФрд░ рдЭреВрда) рд╣реИ, рдФрд░ рдлрд┐рд░ рд▓реЛрдбрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ, рдпреЗ рдЧреНрд▓реЛрдмрд▓реНрд╕ рд╣реИрдВ" рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдг рдЬреЛ рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрдВрдбрд▓-рдЯрд╛рдЗрдо рдкрд░ externals рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдпрджрд┐ рдЖрдк рдЖрдпрд╛рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╡реИрд╢реНрд╡рд┐рдХ React рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдмрд╛рдж рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЖрдпрд╛рдд рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд▓реЛрдбрд░ рдХреЛ рджрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧ рдХреА рд▓рдЪреАрд▓рд╛рдкрди рджреЗрддрд╛ рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ (https://github.com/rollup/rollup/issues/855) рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдмрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬреЛ рдЖрдХрд╛рд░ рджреЗрдЦреЗ рдЧрдП рд╣реИрдВред рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд╕реЗрдЯрдЕрдк рдореЗрдВ (рд░реЛрд▓рдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП) рдореИрдВрдиреЗ рд░рд┐рдПрдХреНрдЯ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдЖрдХрд╛рд░ рдХреЗ рд▓рд╛рдн рдХреЛ рджреЗрдЦрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рд╕рд┐рд░реНрдл рд╕реАрдбреАрдПрди рд╕реЗ рд╕реЗрд╡рд╛ рдХрд░реВрдВрдЧрд╛ред рдореЗрд░реЗ рд▓рд┐рдП рдЬрд┐рд╕рдХреЗ рд▓рд╛рдн рд╣реИрдВ:

рдХ) рдореЗрд░реА рд╕рд╛рдЗрдЯ рдкрд░ рдХрдо рдЕрдиреБрд░реЛрдз (рдФрд░ рдмреИрдВрдбрд╡рд┐рдбреНрде)ред
b) рдореЗрд░реА рдмрд┐рд▓реНрдб рдЪреЗрди рдореЗрдВ рдмрдВрдбрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕рдордпред
рдЧ) рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╣рд░ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рдХреЛрдб рдореИрдВ рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЛ рдзрдХреНрдХрд╛ рджреЗрддрд╛ рд╣реВрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдХреЗрд╡рд▓ рдореЗрд░рд╛ рдХреЛрдб рдмрдВрдбрд▓ рдореЗрдВ рд╣реИ рдЬреЛ рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд░рд┐рдПрдХреНрдЯ рдЕрднреА рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреИрд╢ рдореЗрдВ рдЕрдирдореЙрдбрд┐рдлрд╛рдЗрдб рд╣реИ - рдЗрд╕ рдкреНрд░рдХрд╛рд░ 304 рд╣реЛ рд░рд╣рд╛ рд╣реИ)ред

рд╕рд╛рдЗрдЯ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдкрд░ рдХреНрд░реЛрдо рджреЗрд╡ рдЯреВрд▓реНрд╕ рдореЗрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, GZipped HTTP рдХрдиреЗрдХреНрд╢рди рдкрд░ рд░рд┐рдПрдХреНрдЯ рдФрд░ рд░рд┐рдПрдХреНрдЯ-рдбреЛрдо (рдЫреЛрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг), рдХреЗрд╡рд▓ 47kb рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЫрд╡рд┐рдпреЛрдВ рд╕реЗ рдХрдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдирд╣реАрдВ рд╣реВрдВ рд╡реИрд╕реЗ рднреА рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд, рдЬрдм рддрдХ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдмрдбрд╝реЗ рд▓рд╛рдн рди рд╣реЛрдВ (рдЬреИрд╕реЗ 50% рдХреА рдХрдореА)ред

рдПрдХ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ: рдореИрдВ рдпрд╣ рднреА рдиреЛрдЯ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд┐рдирд╛, рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рдмрдВрдбрд▓рд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЗрди рдЖрдпрд╛рддреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдкрд╛рд╕ "рдпрд╣ рдореЙрдбреНрдпреВрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реИ" рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдд (рдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛, рдпрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд) рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░реЗрдВ рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╣рд▓ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

@billti SystemJS рдХреЛ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рд╕рдорд░реНрдерди рд╣реИред рдЖрдк рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╕реАрдбреАрдПрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдЕрджрд▓рд╛-рдмрджрд▓реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рднреА рдкреВрд░реНрдг рд╕рдорд░реНрдерди рд╣реИ рдЬреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЖрдпрд╛рддреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдПрдХ рдмрд╛рд░ рд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЬрдм рдкрд╣рд▓реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддреЛ рд╡рд┐рдВрдбреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрдЧреА, рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдпрд╣ рд╕реАрдбреАрдПрди рд╕реЗ рдЖ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреЛрдгреАрдп 1.x рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рд╣реИ

рд╕рд╛рднрд╛рд░ @aluanhaddad рджрд┐рд▓рдЪрд╕реНрдк ... рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЗрд╕ рд╕рдбрд╝рдХ рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛, рдФрд░ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдЬ рд╕реБрдмрд╣ рд╣реА рд╕рд┐рд╕реНрдЯрдордЬреЗрдПрд╕ рд░реЗрдкреЛ рдкрд░ рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛ред рдпрджрд┐ рдЖрдк рдЙрддреНрддрд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ https://github.com/systemjs/systemjs/issues/1510 рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ :-)

рдиреЛрдЯ: рдореЗрд░реА рдЕрдиреНрдп рдЯрд┐рдкреНрдкрдгреА рдЕрднреА рднреА рдХрд╛рдпрдо рд╣реИ, рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрддреНрд╕рд░реНрдЬрди рд╕реНрд╡рдпрдВ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SystemJS / WebPack / Rollup рдЖрджрд┐ рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реВрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд╛рдлреА рд╕рдордп рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЙрд╕ рд╕реНрд░реЛрдд рдХреЛрдб рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдерд╛ рд▓реЗрдХрд┐рди рдореИрдВ рд╕реМ рдкреНрд░рддрд┐рд╢рдд рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реВрдВ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред

рдЕрдкрдиреЗ рджреВрд╕рд░реЗ рдмрд┐рдВрджреБ рдкрд░, рдпрд╣реА рдареАрдХ рд╣реИ рдХрд┐ SystemJS рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрди рдЖрдпрд╛рддреЛрдВ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдореИрдк рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╣реА рд▓реЛрдб рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдЙрддреНрдкрд╛рджрди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ

FYI рдХрд░реЗрдВ: рдореБрдЭреЗ SystemJS API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SystemJS рдореЗрдВ рдпрд╣ рдХрд╛рдо рдорд┐рд▓рд╛ рдФрд░ https://github.com/systemjs/systemjs/issues/1510 рдкрд░ рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝рд╛ред рдзрдиреНрдпрд╡рд╛рджред

рдореЗрд░рд╛ рджреВрд╕рд░рд╛ рдмрд┐рдВрджреБ рдкреБрди: рд╣рд╛рдВ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдбрд░ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдореЗрд░реА рдмрд╛рдд рд╣реИ, рд╡реЗ рдПрдХ рдЖрдпрд╛рддрд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдореИрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ - рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рд╡реИрдз рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕ рдореВрд▓ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдХреИрдЪ -22 рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдпрд╣ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдерд╛ (рдЬреЛ рдпрд╣ рдирд╣реАрдВ рд╣реИ) ред

рдореЗрд░реА рдЕрдиреНрдп рдЯрд┐рдкреНрдкрдгреА рдЕрднреА рднреА рдЦрдбрд╝реА рд╣реИ, рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрд╕рд░реНрдЬрди рдЦреБрдж рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдордЬреЗрдПрд╕ / рд╡реЗрдмрдкреИрдХ / рд░реЛрд▓рдЕрдк рдЖрджрд┐ рдЬреИрд╕реА рдХреБрдЫ рдЪреАрдЬрд╝реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ... рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рдЖрдпрд╛рдд рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

@ рдмрд┐рд▓реНрдЯреА рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣реА рд╣реИред рдРрд╕рд╛ рдХреМрди рд╕рд╛ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рдХрд▓реНрдк рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ? рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЙрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рджреЗрдЦрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдФрд░ рдПрдХ рдореЙрдбреНрдпреВрд▓ рджреЛрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

@DanielRosenwasser рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рдХреЗ рд╕рджрд╕реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

@ рдмрд┐рд▓реНрдЯреА рднрдпрд╛рдирдХ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЕрдкрдиреЗ рджреВрд╕рд░реЗ рдмрд┐рдВрджреБ рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦреЗрдВ: рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐, рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рдЬреЗрдПрд╕ рдпрд╛ рд╡реЗрдмрдкреИрдХ рдЬреИрд╕рд╛ рдПрдХ рдкреИрдХреЗрдЯ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдлрд┐рд░ рднреА рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИред (рдореИрдВрдиреЗ рд╕реБрдирд╛ рд╣реИ рдХрд┐ рдЪрдХреНрд░ рдиреЗ рдЗрд╕реЗ рдПрдХ рдзреНрд╡рдЬ рдХреЗ рдкреАрдЫреЗ рдЙрдкрд▓рдмреНрдз рдХрд┐рдпрд╛ рд╣реИ)ред рддреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреВрд▓ рдХреЗ рдмрд┐рдирд╛ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ define , require , рдпрд╛ System.register рдпреБрдХреНрдд рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдирд┐рд╣рд┐рддрд╛рд░реНрде рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреЛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд _JavaScript_ рдХреЛрдб рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ "рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдо рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ" рдХрд╛ рдорд╣рддреНрд╡ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рдЖрдк рдХрдо рд╕реЗ рдХрдо рдХреЗрд╡рд▓ "рдореЙрдбреНрдпреВрд▓" рдХреЛ рдПрдХ рдмрд╛рд░ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

_shims.d.ts_

import __React from 'react';

declare global {
  const React: typeof __React;
}

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

рдЕрдкрдиреЗ shims.d.ts рдХреЛ рдкреБрди: рднреЗрдЬреЗрдВ, рдпрджрд┐ рдЖрдк рдХреБрдЫ рдкрджреЛрдВ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ (рдорд╣рд╛рди рджрд┐рдорд╛рдЧ рдПрдХ рдЬреИрд╕реЗ рд╣реИрдВ); ;-)

рдореИрдВ рдЗрд╕реЗ рдХрдИ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдм рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╣ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдлрд▓рддрд╛ рдХреЗ рдЧрд░реНрдд рдореЗрдВ рдЧрд┐рд░ рд░рд╣реЗ рд╣реИрдВ, рди рдХрд┐ рдирд┐рд░рд╛рд╢рд╛ рдХреЗ рдЧрдбреНрдвреЗ рдореЗрдВред рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ рдЕрдХреНрд╕рд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╣рд┐рдЯрд┐рдВрдЧ рдореБрджреНрджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдЦреБрдж рд╕реЗ рджреЛ рд╕рд╡рд╛рд▓ рдкреВрдЫрддрд╛ рд╣реВрдВ: рдХ) рдХреНрдпрд╛ рдпрд╣ рд╡реИрдз рдХреЛрдб рд╣реИ, рдФрд░ рдЦ) рдХреНрдпрд╛ рдЧреНрд░рд╛рд╣рдХ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рджреЗрдЦрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ (рдЧреИрд░-рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ) рд╕рдВрд╕реНрдХрд░рдг рдерд╛, рдЬреЛ рдореИрдВ рдмрд╛рдмреЗрд▓ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЬрд┐рд╕ рд╕рдордп рдореБрдЭреЗ рдЗрд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рдХреЛрдб рдорд╛рдиреНрдп рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдбреЙрдХреНрд╕ рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреЗрдЬ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдбреАрдПрди рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХрд╛

рдпрджрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдХреБрдЫ рдорд╛рдиреНрдп рдкреИрдЯрд░реНрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд▓реЛрдЧ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛрдВ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рд╣реА рдХрд░реЗрдВ (рдЬреЛ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдпрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдбреЙрдХреНрд╕ рдореЗрдВ рдХрд░рдирд╛ рдПрдХ рдЪреБрдиреМрддреА рд╣реИ)ред рд▓реЗрдХрд┐рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреИрдЯрд░реНрди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡реЗ "рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕" рдпрд╛ "рд╡рд┐рд╣рд┐рдд" рд╣реИрдВред рдпрджрд┐ рдХреЛрдб рдорд╛рдиреНрдп рд╣реИ, рдФрд░ рдХреБрдЫ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрд╡рддрд╛ рдЗрд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрд┐рддрдирд╛ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдкрдирд╛ рдХреЛрдб рдмрджрд▓реЗрдВ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (рдЬреИрд╕реЗ рдХрд┐ рдореЗрд░реЗ рддреБрдЪреНрдЫ рдРрдк рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЧрдИ рд╣реИ), рдлрд┐рд░ рдХрдо рджреЗрд╡рддрд╛ рдЖрдЧреЗ рдмрдврд╝ рдЬрд╛рдПрдВрдЧреЗред

рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ ... рдмрд╕ рдпрд╣рд╛рдБ рдереВрдХрдирд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж "рд▓рд┐рдмрд╛рд╕" рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд▓реНрдк, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдкреАрдЖрдИ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрддрд░ рдкрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП @types/name рд╕реНрд╡рд░реВрдк рдорд╛рди рднреА рд▓реЗ рд╕рдХрддрд╛ рд╣реИред (рдФрд░ рд╢рд╛рдпрдж рд░рд┐рд╢реНрддреЗрджрд╛рд░ рд░рд╛рд╕реНрддреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рднреА рдХрд░рддреЗ рд╣реИрдВ)ред

рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдлрд▓рддрд╛ рдХреЗ рдЧрд░реНрдд рдореЗрдВ рдЧрд┐рд░ рд░рд╣реЗ рд╣реИрдВ, рди рдХрд┐ рдирд┐рд░рд╛рд╢рд╛ рдХреЗ рдЧрдбреНрдвреЗ рдореЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрднреА рд╕рдлрд▓рддрд╛ рдХреЗ рдЧрд░реНрдд рддрдХ рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рдХреЗрд╡рд▓ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рд╡реИрд╢реНрд╡рд┐рдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЧрд▓рддреА рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХреБрдЫ рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:

  1. рдПрдХ рд╕рдВрд╡рд░реНрдзрд┐рдд export as namespace foo рдирд┐рд░реНрдорд╛рдг рдмрдирд╛рдПрдВ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЖрдпрд╛рдд рди рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗред
  2. рдХреБрдЫ рднреА рди рдХрд░реЗрдВ, рдФрд░ рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдЧреЛрдВ рдХреЛ рдзрдХреЗрд▓рддреЗ рд░рд╣реЗрдВ - рдпрд╣ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдареАрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЛ рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред
  3. рд▓реЛрдЧреЛрдВ рдХреЛ рд╣рд░ рдЬрдЧрд╣ рд╕реЗ рдпреВрдПрдордбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ - рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЙрддрдирд╛ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реВрдВред

@billti

рдЕрдкрдиреЗ shims.d.ts рдХреЛ рдкреБрди: рднреЗрдЬреЗрдВ, рдпрджрд┐ рдЖрдк рдХреБрдЫ рдкрджреЛрдВ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ (рдорд╣рд╛рди рджрд┐рдорд╛рдЧ рдПрдХ рдЬреИрд╕реЗ рд╣реИрдВ); ;-)

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рд╡рд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛;)

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреИрдЯрд░реНрди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡реЗ "рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕" рдпрд╛ "рд╡рд┐рд╣рд┐рдд" рд╣реИрдВ

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╣рд╛рдБ рдЕрднрд┐рдпреЛрдЧрд╛рддреНрдордХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдпрд╣ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ, рдХрд┐ рдореБрдЭреЗ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдбреЗрдореЛ рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╡реЗ рдЦреБрдж рдХреЛ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ ES рдореЙрдбреНрдпреВрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡реЗ рдРрд╕рд╛ рдХрд░рдХреЗ рд╕рдмрд╕реЗ рдорд╣рд╛рди рдирд╛рдЧрд░рд┐рдХ рдмрди рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдФрд░ рдЪрд░реНрдЪрд╛ рд╣реИред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдЕрдЧрд░ рдореЙрдбреНрдпреВрд▓ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рдПрдХ _perceived_ syntactic рдЪреАрдиреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдирдХреА рд╡рд┐рдлрд▓рддрд╛ рд╣рд╛рде рдореЗрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдПрдХ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА рдирд╣реАрдВ рд╣реИрдВред рдпрджрд┐ рдХреБрдЫ рднреА рд╡реЗ рдПрдХ рд╕рд┐рдиреНрдереЗрдЯрд┐рдХ рдирдордХ (рд╢рд╛рдпрдж рдПрдХ рдХрд░?) рд╣реИ рдЬреЛ рд╣рдо рд╕рдЪреНрдЪреЗ рдХреЛрдб рдЕрд▓рдЧрд╛рд╡, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧрд┐рдВрдЧ рд╕реЗ рдореБрдХреНрддрд┐, рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдШреЛрд╖рдгрд╛, рд╡реИрд╢реНрд╡рд┐рдХ рдирд╛рдо рд╕реНрдерд╛рди рдирд░рдХ рд╕реЗ рдмрдЪрдиреЗ рдФрд░ рдЕрдиреНрдп рд▓рд╛рднреЛрдВ рдЬреИрд╕реЗ рд▓рд╛рднреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрднреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдПрд░реНрдЧреЛрдиреЛрдорд┐рдХ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╢рдмреНрджрд╛рд░реНрде рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕рд╛рд░реНрдердХ рдмрдирд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд▓реЛрдЧ рдХрдо рд╕реЗ рдХрдо .ts рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдордЬрдмреВрдд рд╕реНрдЯреЗрдЯрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдмреИрдмрд▓ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдореМрдЬреВрдж рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдХреЛрдИ рдЬреНрдЮрд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдЪ рд╣реИ рднрд▓реЗ рд╣реА рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рджрд╛рдпреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

@DanielRosenwasser

рдирд╛рдорд╛рдВрдХрд┐рдд рдлрд╝реВ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рдВрд╡рд░реНрдзрд┐рдд рдирд┐рд░реНрдпрд╛рдд рдмрдирд╛рдПрдВ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рдпрд╣ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд▓рдЧрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЗрд╕ рдХрд╛рд░рдг рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ:

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рдЬрд┐рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рд╣рдо npm рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп (рдЬреНрдпрд╛рджрд╛рддрд░ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ рд░реЛрд▓рдЕрдк рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдлрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдм рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдареАрдХ рд╣реИред

рдореИрдВ рдЗрдореЛрдЬреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ .js рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдХреЛрдбрдмрд╕ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдерд╛ред рдмрд╛рдж рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/13293 рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рдЕрдм рдмрд╕ рдкреНрд░рдХрд╛рд░ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореБрдЭреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░рдиреЗ рджреЗрдЧрд╛ред

рдПрдирдкреАрдПрдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд╛рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдПрдирдкреАрдПрдо рдореЙрдбреНрдпреВрд▓ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдФрд░ рдкреАрдПрдирдЬреА рдХреЗ рдХрдИ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХреЛ рднреА рдмрдВрдбрд▓ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдмрд╕ рдПрдХ 200KiB рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдкреНрд░рдХрд╛рд░ рдХреА рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рд╕рд╛рдеред

AngularJS рдХреЗ рд╕рд╛рде, рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб declare var angular: ng.IAngularStatic ред рд▓реЗрдХрд┐рди рдпрд╣ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣реИ рдирд╛?

@dbrgn рдЖрдк рдПрдХ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реИ, рддреЛ рдЖрдкрдХреА рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЧрд▓рдд рд╣реИред рдпрд╣ рди рддреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рди рд╣реА рдпреВрдПрдордбреА рд╢реИрд▓реА рдХреА рдШреЛрд╖рдгрд╛ рд╣реИ (рдпрд╣ рдпреВрдПрдордбреА рд╢реИрд▓реА рдХреА рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ), рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рд╢реБрджреНрдз рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИред

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

AngularJS рдХреЗ рд╕рд╛рде, рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ var рдХреЛрдгреАрдп рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: ng.IAngularStaticред рд▓реЗрдХрд┐рди рдпрд╣ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣реИ рдирд╛?

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

рд╣рдорд╛рд░реА рдбрд┐рдЬрд╛рдЗрди рдмреИрдардХ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рдерд╛ рдХрд┐ рд╣рдо рд╣рдореЗрд╢рд╛ рдпреВрдПрдордбреА рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдзреНрд╡рдЬ рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдкреНрд░рддрд┐рдмрдВрдз рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред UMD рд╡реИрд╢реНрд╡рд┐рдХ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрдВрдз рднреА рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдШреЛрд╖рдгрд╛ рдХреА рддрд░рд╣ рд╣реИред рдпрд╣ рдзреНрд╡рдЬ рдирдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдЦреЛрдЬ рдпреЛрдЧреНрдп рд╣реИ, рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдмрд╛рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореМрдЬреВрджрд╛ рдХреЛрдб рдФрд░ рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рд╕рдЦреНрдд рдЬрд░реВрд░рдд рд╣реИред рдРрд╕реЗ рд╕рдордп рддрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреЗрдЬ рдЦреЗрд▓рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд╣рд╛рд░ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓рд╛рдкрди рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИред рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдЫреЛрдбрд╝реЗрдВ, рд▓реЗрдХрд┐рди рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╡рд┐рдлрд▓ рди рдХрд░реЗрдВред рдореИрдВрдиреЗ рд░реЛрд▓рдЕрдк рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рдкреНрд▓реЗ рдЕрдЪреНрдЫрд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рджрд┐рдиреЛрдВ рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдКред

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

рдореБрдЭреЗ 14 рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрджрд░реНрде рдореЙрдбреНрдпреВрд▓ рдорд╛рдирдХреЛрдВ рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдЙрд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдПрдХ рдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рд╕рдВрдХрд▓рди рдХрд░реЗрдВ рдЬреЛ рджрд┐рди рдХреЗ рд░реЛрд▓рдЕрдк / рдмрдВрдбрд▓рд┐рдВрдЧ рдЯреВрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рдирд╛ рдЬрд╣рд░ рдХреЗ рдЙрдкрднреЛрдЧ рдХрд░реЗрдЧрд╛, рдФрд░ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рд╛рд░реВрдк рднреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдпрд╛рдд / рдирд┐рд░реНрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдФрд░ рддреГрддреАрдп рдкрдХреНрд╖ d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЯреАрдПрд╕рд╕реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХреЛрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗ, рдЬрд╣рд╛рдВ рдЖрдк "рдмрд╕ рдЖрдпрд╛рдд рд╢реБрд▓реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ", рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╣реЛрдЧрд╛ред рд░реБрди рдЯрд╛рдЗрдо тАЭред

Shims.d.ts рд╣реИрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдК

рд╡реЗрдмрдкреИрдХ https://github.com/Microsoft/TypeScript/issues/11108#issuecomment -285356313 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди

рд╡рд╛рдВрдЫрд┐рдд UMD рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде externals webpack.config.js ред

    externals: {
        'angular': 'angular',
        'jquery': 'jquery'
        "react": "React",
        "react-dom": "ReactDOM"
    }

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореМрдЬреВрджрд╛ рдХреЛрдбрдмреЗрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд╣рд╛рдБ jQuery рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВ рдЬреЛ jQuery рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗрд╡рд▓ рддрднреА рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреБрдЫ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреЛрдб рдЙрд╕ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ jQuery рдХреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рд╣реЛрдиреЗ рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕ рдХрд╛рдо рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП jQuery рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрдиреНрд╣реЗрдВ рднреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдПрдХ рдЕрдиреБрдорд╛рди рдЬрд╣рд╛рдВ рд╡реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ)ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдРрд╕реЗ рдкреГрд╖реНрда рднреА рд╣реИрдВ рдЬреЛ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░ рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рддреЛ, рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдФрд░ рдореЙрдбреНрдпреВрд▓ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

JQuery рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд▓реА рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдкреАрдЯрд╛ рдФрд░ рдЕрдиреНрдпред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдирд╛рдЗрдЯреНрд░рдЧреНрдорд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╡рд╛рд╕рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╛, рдПрдХ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЕрдирдореНрдпред

рдмреЗрд╢рдХ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╣реВрдБ

рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдорддрд▓рдм рд╣реЛрдЧрд╛ types рдореЗрдВ tsconfig.json рдЗрд╕ рдмрд╛рдд рдХреЗ рд▓рд┐рдП? рдЬреИрд╕реЗ рдмрд┐рдирд╛ types рд╕реЗрдЯ, рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдирд┐рд╣рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ types рд╕реЗрдЯ рдХреЗ рд╕рд╛рде, рдЖрдк рд╕рдЪрдореБрдЪ "рдпреЗ рдЪреАрдЬреЗрдВ рдЧреНрд▓реЛрдмрд▓реНрд╕ рд╣реИрдВ" рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдФрд░ UMD рдирд╛рдорд╕реНрдерд╛рди рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрд╕ рддрд░рд╣ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ рдЬреЛ рдЖрдЬ рднреА рдореМрдЬреВрдж рд╣реИ (рдмрд▓ рдмрд▓ рд╡реИрд╢реНрд╡рд┐рдХ)ред рдпрд╣ рдПрдХ рдирдпрд╛ globals рд╡рд┐рдХрд▓реНрдк рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣реИрдВ рдЬреЛ UMD рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, рдФрд░ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВред рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЛ рдЕрд▓рдЧ tsconfig.json рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреГрдврд╝ред

@blakeembrey рд╣рд╛рд▓рд╛рдВрдХрд┐ types рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЕрддрд┐рднрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдзрд╛рд░рдгрд╛ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рдирд╣реАрдВ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, <reference types="package" /> рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реАрдорд╛ рд╣реИ рдХрд┐ рдпрд╣ "paths" рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред "package" рдХреЛ @types рдореЗрдВ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдирд╛рдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рдореБрдЭреЗ рдЗрд╕ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдк рдХреЗ рдмрд╛рдж рдПрдХ рдХрдард┐рди рд╕рдордп рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрджреНрдпрддрди рдпрд╛ рдирд┐рдпреЛрдЬрд┐рдд рд╕рдВрдХрд▓реНрдк рд╣реБрдП рд╣реИрдВ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЬрдм рд▓реЙрд╢ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдЕрднрд┐рдиреНрди рдЕрдВрдЧ рд╣реИ, рдпрд╛ рдЬрдм рдЕрдзрд┐рдХ 3 рдкрд╛рд░реНрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗрд╡рд▓ рдЦрд┐рдбрд╝рдХреА рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓рд░ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред

рдХреНрдпрд╛ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдпреЛрдЬрдирд╛рдмрджреНрдз рддрд░реАрдХрд╛ рд╣реИ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд░реНрддрдорд╛рди рдЙрдкрд▓рдмреНрдз рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рд╣рд╛рдп @ рдордЪрд╡рд┐рдЪ рдореБрдЭреЗ рдПрдХреНрд╕рдЯрд░реНрдирд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИ рдФрд░ declare global рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ:

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

@ рдХреИрдВрдЯреЙрдХреНрд╕ declare рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ?

@aluanhaddad рдЬреНрдпрд╛рджрд╛рддрд░ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЖрдпрд╛рдд рдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдХрд╛рдо рд╕реЗ рднреНрд░рдорд┐рдд рдерд╛ред рдореИрдВрдиреЗ рдХреБрдЫ рдХрд╣рд╛, рдХреНрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдерди рд╕рд╣реА рд╣реИ?

рдЬрдм рд╣рдо рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рдЫреЛрдЯреЗ рд╢реБрд▓реНрдХ рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдореЗрдореЛрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдореЙрдбреНрдпреВрд▓ рдХреИрд╢ рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдЧрд░ рдореЙрдбреНрдпреВрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд╕ рдХреБрдЫ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗрддреНрд░рд╣реАрди рдЖрдкрдХреЛ рднрд░реЛрд╕рд╛ рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрд▓рдмреНрдз рд╣реИ (рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдмрдВрдбрд▓рд░ рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд / рд╣рдЯрд╛рдпрд╛ рднреА рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

рдпрджрд┐ рдпреЗ рд╕рд╣реА рд╣реИрдВ, рддреЛ рд╣рдо рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдереНрд░реЗрдб рдПрдХ рд╡рд┐рд╢рд╛рд▓рдХрд╛рдп рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ @codymullins рдКрдкрд░ рдкреВрдЫрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВрдиреЗ рдЕрднреА рд▓реЙрдбрд╢ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдФрд░ TS2686 рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдорд┐рд▓рд╛ред

рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╣рд▓ рдкреБрд░рд╛рдиреЗ, рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд░реВрдк рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣реИрдХ рдХрд░рдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЕрдзрд┐рдХ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рдлрд╛рдЗрд▓ рдЯреВрдЯрдиреЗ рд▓рдЧреЗ рддреЛ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдирд╣реАрдВ рд╣реИред

рдореЗрд░рд╛ рдкрд░рд┐рджреГрд╢реНрдп рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  • рдЕрдкрдиреЗ рд╕рд┐рдВрдЧрд▓-рдкреЗрдЬ рдПрдкреНрд╕ рдореЗрдВ рдореИрдВ рдПрдХ рдореЗрдВ рдХрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ (рд▓реЙрд╢ рд╕рд╣рд┐рдд) рдХреЛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ

рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╢рд┐рдо рдЙрджрд╛рд╣рд░рдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ vscode рдЗрд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд░рд╣рд╛ рд╣реИ (рднрд▓реЗ рд╣реА рдпрд╣ рдЕрднреА рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╕реЗ рдХрд░рддрд╛ рд╣реИ!)

рдХреГрдкрдпрд╛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ UMD рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рди рджреЗрдВред рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореИрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ AngularJS рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдо рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд angular рд╕реЗ UMD рд╡реИрд╢реНрд╡рд┐рдХ рдФрд░ рдХреЛрдгреАрдп рдкреНрд░рдХрд╛рд░ @types/angular ред рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ "angular" types tsconfig.json рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди, рдЬреЛ рднреА рдХрд╛рд░рдг рд╕реЗ, рдпрд╣ рдирд╣реАрдВ рд╣реИ, рдФрд░ TSC рдореБрдЭ рдкрд░ рдЪрд┐рд▓реНрд▓рд╛рддреА рд╣реИред рдЬрд┐рддрдирд╛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рднреА рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рд╢реБрджреНрдз рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдереЗ, рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд╛рджреЗ рдЬреЗрдПрд╕ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣реЗрдВрдЧреЗред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдПрдХ рдпреВрдПрдордбреА рдЧреНрд▓реЛрдмрд▓ рдореМрдЬреВрдж рд╣реИрдВ, рддрдм рдЯреАрдПрд╕рд╕реА рд╕рд┐рд░реНрдл d.ts рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдерд┐рддрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ - рд╣рд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреЛ рдореИрдВрдиреЗ рдХрднреА рднреА рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореБрдЭреЗ рдЦреБрдж рдХреЛ рдмрдВрдбрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрджрд░реНрдн рджреЗрдирд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?

рдореЗрд░рд╛ usecase: рдореИрдВ рдПрдХ рдмрдбрд╝реЗ рдореМрдЬреВрджрд╛ рдХреЛрдбрдмреЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ CDN рдХрд╛ рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рдХрдИ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдкрдмреЛрд░реНрдбрдЬ, рд▓реЙрд╢)ред рдореИрдВ рдЙрди рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░реЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреГрд╖реНрда рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛, рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ /// <reference type="$name" /> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдХрд▓рди рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред

рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдзрд╛рдЧреЗ рдореЗрдВ рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИрдВ:

  1. /// <reference type="$name" /> рдЖрдпрд╛рдд рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ рдЯреЛрдХрди рд░рдЦреЗрдВред

  2. tsconfig.json рдореЗрдВ рдПрдХ рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд▓реНрдк / рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪрд░ (рдЙрджрд╛ред "globals" , "types" )

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдЪреНрдЫреЗ рд╣реИрдВред рдЬрдмрдХрд┐ рдореИрдВ @RyanCavanaugh рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд▓реНрдк 1 рдХреА рдЖрд▓реЛрдЪрдирд╛ рд╕реЗ рд╕рд╣рдордд

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдпрджрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкреВрд░реЗ рд╕реНрдерд╛рди рдкрд░ рд╕рдВрджрд░реНрдн рдирд┐рд░реНрджреЗрд╢ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ рдХрд┐ рдЖрдк рдореМрдЬреВрджрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдг UMD рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдмрдХрд╛рдпрд╛ рд╣реИ? рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреНрдпрд╛ рд╣реИ?

рдпрджрд┐ рдЖрдк @types рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдкреИрдХреЗрдЬ рдЬрд┐рдиреНрд╣реЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдореИрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ npm install -D @types/underscore рд╣реВрдВ, рддреЛ рдореИрдВ рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╕реЗ рдХреБрдЫ рднреА рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рднреА _ рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред

types-ref

рдХреНрдпрд╛ рдЖрдк рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реИрдВ?

@ рдмрд┐рд▓реНрдЯреА рд╢рд╛рдпрдж рдореБрдЭреЗ рдЧрд▓рддрдлрд╣рдореА рд╣реЛ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдорд░рдореНрдордд рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо:

рдЬреЗ рдПрд╕ / foo.ts:

// <reference types="js-cookie">

import { Bar } from "./bar";

const Foo = {
    set: function() {
        Cookies.set("foo", "bar");
    },
    get: function() {
        console.log(Cookies.get("foo"));
    }
};

window.onload = function() {
    console.log(Cookies);
}

рдЬреЗ рдПрд╕ / bar.ts

const Bar = {
    x: 3
};

export { Bar };

package.json:

{
  "name": "foo",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "private": true,
  "devDependencies": {
    "@types/js-cookie": "^2.1.0",
    "typescript": "^2.7.1"
  },
  "dependencies": {
    "http-server": "^0.11.1"
  }
}

tsconfig.json

{
    "compilerOptions": {
        "module": "system"
    },
    "files": [
        "js/foo.ts"
    ]
}

рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢:

js / foo.ts (7,3): рддреНрд░реБрдЯрд┐ TS2686: 'рдХреБрдХреАрдЬрд╝' рдПрдХ UMD рд╡реИрд╢реНрд╡рд┐рдХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЖрдпрд╛рдд рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
js / foo.ts (10,15): рддреНрд░реБрдЯрд┐ TS2686: 'рдХреБрдХреАрдЬрд╝' рдПрдХ UMD рд╡реИрд╢реНрд╡рд┐рдХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЖрдпрд╛рдд рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
js / foo.ts (15,14): рддреНрд░реБрдЯрд┐ TS2686: 'рдХреБрдХреАрдЬрд╝' рдПрдХ UMD рд╡реИрд╢реНрд╡рд┐рдХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЖрдпрд╛рдд рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдпрд╛рддрд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЛ "рдЙрдЪрд┐рдд" UMD рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╣ "рдХреБрдХреАрдЬрд╝" рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ) рдпрд╛ "рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛрдиреЛрдВ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдореЙрдбреНрдпреВрд▓ (рдЬреЛ рдХреИрд╕реЗ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) ред

рд╕рд╣реА рдврдВрдЧ рд╕реЗ .d.ts рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рдЕрд╕рдВрдЧрддрд┐ рдпрд╣ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрднрд╡ рдХреА рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ "рдпреВрдПрдордбреА рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рддрд┐рдмрдВрдз рд╣рдЯрд╛" рджрд┐рд╢рд╛ рдореЗрдВ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдЭреБрдХ рд░рд╣рд╛ рд╣реВрдВред рд╣рдо рдЗрд╕реЗ --strict рд╕рд╛рде --noStrictUMD рдСрдкреНрдЯ-рдЖрдЙрдЯ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

рджреВрд╕рд░реА рдЪреАрдЬрд╝ рдЬреЛ рдореИрдВ рднрд╛рдЧрд╛, рд╡рд╣ рдореЛрдирд╛рдХреЛ рдХреЗ рдХрд╕реНрдЯрдо рдПрдПрдордбреА рд▓реЛрдбрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реА рдереАред рд╡реЗ рдПрдПрдордбреА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХреБрдЫ рд╕рдмрд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЖрдЗрд░реЛрд▓ рдбрд╛рд▓реЗрдВ) рд▓реЗрдХрд┐рди рд╡реИрд╢реНрд╡рд┐рдХ 'рдЖрд╡рд╢реНрдпрдХрддрд╛' рдкрд░ рд╕реНрдЯреЙрдореНрдк рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдЙрдЪрд┐рдд рдпреВрдПрдордбреА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдард┐рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЛ 'рд╡реИрд╢реНрд╡рд┐рдХ' рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╡реЗ рдареАрдХ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддреЗ рд╣реИрдВ рдореЛрдирд╛рдХреЛ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░ред рдЖрдк рдЕрдВрдд рдореЗрдВ рдореЛрдирд╛рдХреЛ рд▓реЛрдбрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХреЗ рдКрдкрд░ рдпреВрдПрдордбреА рдЬреЗрдПрд╕ рд▓рд┐рдмрд╛рд╕ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЯреАрдПрд╕ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдореЛрдирд╛рдХреЛ рдПрдкреАрдЖрдИ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред

@RyanCavanaugh

рджреВрд╕рд░реА рдЪреАрдЬрд╝ рдЬреЛ рдореИрдВ рднрд╛рдЧрд╛, рд╡рд╣ рдореЛрдирд╛рдХреЛ рдХреЗ рдХрд╕реНрдЯрдо рдПрдПрдордбреА рд▓реЛрдбрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реА рдереАред рд╡реЗ рдПрдПрдордбреА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХреБрдЫ рд╕рдмрд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЖрдЗрд░реЛрд▓ рдбрд╛рд▓реЗрдВ) рд▓реЗрдХрд┐рди рд╡реИрд╢реНрд╡рд┐рдХ 'рдЖрд╡рд╢реНрдпрдХрддрд╛' рдкрд░ рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдЙрдЪрд┐рдд рдпреВрдПрдордбреА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдард┐рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЛ 'рд╡реИрд╢реНрд╡рд┐рдХ' рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╡реЗ рдареАрдХ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддреЗ рд╣реИрдВред рдореЛрдирд╛рдХреЛ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░ред

ЁЯШБ

рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рднреА рдореМрдХрд╛?

рдореИрдВ рджреЗрд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд▓рд╛рдЧрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдЕрдиреНрдпреЛрдиреНрдпрд╛рд╢реНрд░рд┐рдд, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдЧрдд рд▓реЛрдбрд░, рдмрдВрдбрд▓рд░, рдЯреНрд░рд╛рдВрд╕рдкреИрд░рд░реНрд╕, рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░, рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдХ рд╕рд╣реА рдорд╛рдпрдиреЗ рдореЗрдВ рдЧреИрд░-рддреБрдЪреНрдЫ рд░рд╛рд╢рд┐ рд╣реИрдВред (рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП no)ред

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдордиреЗ рдЯреВрд▓рдЪрд┐рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ 5-6 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдкрд░рд┐рдорд╛рдг рдХреЗ рдЖрджреЗрд╢ рд╣реИрдВ, рдФрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд╕реНрд░реЛрдд рдореЙрдбреНрдпреВрд▓ рд░рд╣рд╛ рд╣реИред

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

рдФрд░ рдлрд┐рд░ рднреА ... рд▓реЛрдЧ рдмрд╕ рдпрд╣реА рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рднрдпрд╛рдирдХ рд╣реИ!

рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдЗрд╕ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдЙрддреНрддрд░ рдореЗрдВ 61 ack рд╣реИрдВ рдФрд░ рдпрд╣ рдкрд┐рдЫрд▓реЗ рдЖрдзреЗ рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП 99% рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЧрд▓рдд рдЪреАрдЬреЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рд╣реИред (рд▓реЗрдЦрдХ рдиреЗ рдЖрдЬ рд╕реБрдмрд╣ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХреБрдЫ рдлреАрдбрдмреИрдХ рдХреЗ рдХрд╛рд░рдг UMD рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХрд┐рдпрд╛)

рдпрд╣ рд╕рдм рдЗрд╕ рдирд╕ рдореЗрдВ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ!

рдФрд░ рдлрд┐рд░ рднреА ... рд▓реЛрдЧ рдмрд╕ рдпрд╣реА рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рднрдпрд╛рдирдХ рд╣реИ!

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

рд╣рдо рдорд┐рдХреНрд╕-рдПрдВрдб-рдореИрдЪ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдпреВрдПрдордбреА рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд░реЗрд╢рд╛рдиреА рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд▓реЛрдбрд░ рдФрд░ рдХреБрдЫ рд▓реЛрдбрд░ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреВрд▓рддрд╛ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рд╕реАрдзреЗ рдирд┐рд░реНрднрд░рддрд╛ рдмрдВрдбрд▓рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реЗрд╖ рдкреВрд░реНрд╡-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рдирдЯред

рдЗрд╕ "рд╕реБрд╡рд┐рдзрд╛" рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ UMD рдореЙрдбреНрдпреВрд▓ рд╕рдорд░реНрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ UMD рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реЛрдВред рд╣рдо рд╕рд┐рд░реНрдл .d.ts рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрд╕ рдирд╛рдо рдХрд╛ рд╣рдорд╛рд░рд╛ рдЕрдкрдирд╛ рдореЙрдбреНрдпреВрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди? рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк 2 рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛:

рдХреБрдЫ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдпрд╣ рдХрд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ "рдпрд╣ рдпреВрдПрдордбреА рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ"

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреБрд░рд╛рдиреЗ рд╕реНрдХреВрд▓ рд╢реИрд▓реА рдХреЗ рдЬреЗрдПрд╕ рд▓рд┐рдмрд╛рд╕ рд╣реИрдВ
рд╡рд╣рд╛рдБ, рдФрд░ рдЙрди рд╕рднреА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдкреНрд░рд╢реНрди рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рдмрд╕ рдПрдХ рдареЛрд╕ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ
рдореЗрд░реЗ рд╕рдордп рдХреЗ рд╕рднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрдЪрд░реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрд▓рдЕрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред

рд▓реЛрдЧ "рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдЬрд╛рд╡рд╛" рдкрд░ рд╣рдВрд╕рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рджреЗ рдЬрд╛рд╡рд╛ рдиреЗ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХреЗ рд╕рд╛рде рднреЗрдЬ рджрд┐рдпрд╛
1.0 рдкрд░ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рдгрд╛рд▓реАред рдкрд░рд┐рдкреВрд░реНрдг рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рдЧрдбрд╝рдмрдбрд╝ рдирд╣реАрдВ рдерд╛ред

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реИ "рдпреВрдПрдордбреА рд╢реИрд▓реА рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ" рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕реЛрдо, рдЕрдкреНрд░реИрд▓ 2, 2018 рдХреЛ рджреЛрдкрд╣рд░ 1:40 рдмрдЬреЗ рдХрд╛рдЧрд╛рдореА рд╕рд╛рд╢рд╛ рд░реЛрд╢рд▓рд╛рдЗрдЯ <
рд╕реВрдЪрдирд╛рдПрдВ@github.com> рдиреЗ рд▓рд┐рдЦрд╛:

рдореБрдЭреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдерд╛:

/ * рдореЙрдбреНрдпреВрд▓: es2015 * /
// js-yaml UMD рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди ES2015 рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╣реАрдВ; "js-yaml" рд╕реЗ _jsyaml рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд *;

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/Microsoft/TypeScript/issues/10178#issuecomment-377885832 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AA50ljAD33sr09EGFVAsURbu1x75X-lOks5tkeQCgaJpZM4Jd8jX
ред

>

рдбреИрдирд┐рдпрд▓ рдЬреЙрдпрд╕

рдирдореНрд░ рдкреГрдереНрд╡реА рдХреЗ рд╡рд╛рд░рд┐рд╕ рд╣реЛрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╣рд╛рджреБрд░ рд╕рд┐рддрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╣реЛрдВрдЧреЗред

рдореИрдВ рдПрдХ рдХреЛрдгреАрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рддреАрди .js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВ рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ

import * as THREE from "three";

import {Vector3} from "three"; рднреА рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

three рдФрд░ @types/three npm рд╕рдВрдХреБрд▓ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ, рд╕рдм рдХреБрдЫ рдареАрдХ рдЪрд▓рддрд╛ рд╣реИред рд╣реБрдб рдХреЗ рддрд╣рдд, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ three/build/three.module.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред @types/three/index.d.ts рдлрд╝рд╛рдЗрд▓ рд╕рдВрдХреЗрддрди export as namespace THREE , рдЬрд┐рд╕реЗ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╡рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рддреАрди .js рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрдХ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬрд┐рд╕реЗ OrbitControls.js рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ рдЖрдкрдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рдпрд╛ рдорд╛рдЙрд╕ рд╕реЗ 3 рдбреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ)ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рддреАрди.js рд╡рд┐рддрд░рдг рдХрд╛ рдЕрд░реНрдз-рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдпрд╣ examples рд╡реГрдХреНрд╖ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд╛рджрд╛-рдкреБрд░рд╛рдирд╛ JS рдлрд╝рд╛рдЗрд▓ рд╣реИ рдФрд░ рд╕реАрдзреЗ THREE рд╕рдВрдкрддреНрддрд┐ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ рдЦрд┐рдбрд╝рдХреА рдХрд╛, рдФрд░ рд╕реАрдзреЗ рдЕрдиреНрдп рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдпрд╣ window.THREE рдкрд░ рдореМрдЬреВрдж рдЦреЛрдЬрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рднрд▓реЗ рд╣реА рдореБрдЭреЗ рдлрд╝рд╛рдЗрд▓ рдХреА "рдЖрд╡рд╢реНрдпрдХрддрд╛" рд╣реЛ

require("three/examples/js/controls/OrbitControls.js");

рдпрд╣ window.THREE рдЦреБрдж рдХреЛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╡рд╛рд▓реЗ THREE рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдиреНрдп рд╣рд┐рд╕реНрд╕реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдкреВрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реАрдзреЗ Angular scripts angular.json (рд▓рдЧрднрдЧ рдПрдХ рдкреБрд░рд╛рдиреЗ рдЬрдорд╛рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ <script> рдЯреИрдЧ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рддрдм рдЕрдЧрд░ рдореБрдЭреЗ рдЧрд▓рдд рдирд╣реАрдВ рд╕рдордЭрд╛ рдЬрд╛рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рджреЛ рдмрд╛рд░ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЙрд╕ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ import * as THREE from "three"; рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдирд┐рдХрд╛рд▓рд╛, рдФрд░ рд╣реЗ, рдпрд╣ рдЕрднреА рднреА foo: THREE.Vector3 рдЬреИрд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЦреНрдпрд╛рдд рдХреЗ рд╕рд╛рде new THREE.Vector3() рдЬреИрд╕реЗ рд╕рдВрджрд░реНрднреЛрдВ рдкрд░ рдЪреБрдЯрдХреБрд▓реЗ

'THREE' рдПрдХ UMD рд╡реИрд╢реНрд╡рд┐рдХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЖрдпрд╛рдд рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред [2686]

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ OrbitControls.js рдлрд╝рд╛рдЗрд▓ рдФрд░ ES6-ify рдФрд░ / рдпрд╛ TS-ify рд╣рдбрд╝рдкрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ 'рдСрд░реНрдмрд┐рдЯ-рдХрдВрдЯреНрд░реЛрд▓-рдПрд╕рдИ 6' рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХрд╛ рд░реВрдк, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдореБрдЭреЗ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рдореБрдЭреЗ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рджреВрд╕рд░реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рд░рдЦрдиреЗ рд╕реЗ рдирдлрд░рдд рд╣реЛред

рдПрдХ рдЕрд░реНрджреНрдз-рдЕрд╕рдВрдмрдВрдзрд┐рдд рдиреЛрдЯ рдкрд░, рдПрдХ рд╡рд┐рд╖рдорддрд╛ рдпрд╣ рд╣реИ рдХрд┐ @types/three OrbitControls рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА three рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реА рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рдХрд┐ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ OrbitControls рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП - рдореИрдВ рдЙрдкрд░реЛрдХреНрдд orbit-controls-es6 рдХреЗ рд╣реЛрдиреЗ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред

рдЖрдЦрд┐рд░рдХрд╛рд░ рдореИрдВ рдЬреЛ рд╕рдорд╛рдзрд╛рди рд▓реЗрдХрд░ рдЖрдпрд╛, рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдмрд╣реБрдд рд╢рд░реНрдорд┐рдВрджрд╛ рд╣реВрдВ, рд╡рд╣ рд╣реИ:

import * as THREE from "three";
Object.defineProperty(window, "THREE", {get() { return THREE; }});
require("three/examples/js/controls/OrbitControls.js");

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдереЛрдбрд╝рд╛ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ рдХрд┐ рдХреНрдпреЛрдВред рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ рдЬреИрд╕реЗ

THREE.OrbitControls = funtion() { };

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ import * as THREE from "three"; рдХрдерди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ "рдирд╛рдо рд╕реНрдерд╛рди" рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдЧрд╛, рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

@RyanCavanaugh рдиреЗ рдореБрдЭреЗ рдпрд╣рд╛рдБ # 26223 рд╕реЗ рдЕрдкрдиреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛:

рдореИрдВ рдПрдХ рдмрдбрд╝рд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдЖрдзрд╛рд░ (Google рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдореЛрдиреЛрд░рдкреЛ) рдмрдирд╛рдП рд░рдЦ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рд▓реЛрдЧ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ angular рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ .d.ts рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓ рдЧрдП рдереЗред рд╣рдордиреЗ рддрдм рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ред рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдореНрдореАрдж рдХрд░рддреЗ рдереЗ рдХрд┐ export as namespace d UMD рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЛ рд╣рдореЗрд╢рд╛ рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЖрдпрд╛рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рдФрд░ рдореВрд▓реНрдп рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЬрдм рд╣рдо рдорд╛рдЗрдЧреНрд░реЗрдЯ (рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк) рдХрд░рддреЗ рд╣реИрдВ, рддрдм рднреА рд╡рд╛рдкрд╕ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдХреЛрдб рдХреЗ рдЧреИрд░-рдЖрдпрд╛рддрд┐рдд рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрдо рддреМрд░ рдкрд░ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ:

  • рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреЛрдб рд╡реИрд╢реНрд╡рд┐рдХ "рдкреГрд╖реНрдарднреВрдорд┐" рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░реЗрдкреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╛ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ w / o рдкреНрд░рддреАрдХ рдкрд░ рдЬрд╛рдПрдВ)ред

  • рдпрд╣ рдХреЛрдб рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ

  • рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ "рд╕рднреА рдЖрдпрд╛рддреЛрдВ рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд╛рдг рд╕реНрддрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП" рд╣рдо рдмрд╛рдЬрд╝рд▓ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдмрд╛рдзрд╛рдУрдВ, рдЙрд░реНрдл тАЛтАЛ"рд╕рдЦреНрдд рдбрд┐рдкреНрд╕"ред

    рдПрдХ рдмрдбрд╝реЗ рдХреЛрдб рдмреЗрд╕ рдореЗрдВ, рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд░реЗрдкреЛ рдЕрд╕рд╣рдиреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ A -> B -> C рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдкреАрдЫрд╛ рдХрд░рдиреЗ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ, рддреЛ рдХреЛрдб A рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ B рдХрд╛ C рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рдпрджрд┐ B рдмрд╛рдж рдореЗрдВ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рддреЛ рдпрд╣ A рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдкрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░рд┐рдкрд▓ рдЗрдлреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИред

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

рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдореЗрдВ рдЙрди export as namespace рдХрдердиреЛрдВ рдХреЛ рд╣рдЯрд╛рдХрд░ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреЛрдб рд░рдЦрд░рдЦрд╛рд╡ рдФрд░ рд╣рдорд╛рд░реЗ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддрд░рд╣ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Google рдЬреИрд╕реА рдореЛрдиреЛрд░реЗрдкреЛ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдо рддреМрд░ рдкрд░ рдЫреЛрдЯреЗ рдХреЛрдб рдЖрдзрд╛рд░реЛрдВ рдореЗрдВ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред

рдЖрдкрдиреЗ рдЬреЛ рдмрд┐рдВрджреБ рдкреЛрд╕реНрдЯ рдХрд┐рдП рд╣реИрдВ, рд╡реЗ рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╛рд░рд╣реАрди рд╣реИрдВред рд╣рдо рдПрдПрдордбреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдмрд╛рд╣рд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдпреВрдПрдордбреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреЛрдиреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рдорд╛рдирд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ)ред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рдХрд╛рдлреА рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

рд╕рдВрднрд╡рддрдГ TS3 рдХреЗ рд╕рд╛рде рд╣рдо рдпрд╣ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдордиреЗ рдХрд┐рдпрд╛ рднреА, рддреЛ рдХрдо рд╕реЗ рдХрдо рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрднреА рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреАред

рдЦреБрд▓рд╛ рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ " рд╕рднреА рдпреВрдПрдордбреА рдореЙрдбреНрдпреВрд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐" рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЭрдВрдбрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рдпрд╛ рдХреНрдпрд╛ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкрд░ рдкреНрд░рддрд┐-рдореЙрдбреНрдпреВрд▓ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

"рд╕рд┐рд░реНрдл рдПрдХ рдзреНрд╡рдЬ" рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░реЗрдВ
"рдкреНрд░рддрд┐-рдореЙрдбреНрдпреВрд▓ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛" рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рджреЗрдВ

рдореИрдВ рдпрд╣ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ tsconfig.json рдореЗрдВ "types" рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕реВрдЪреА рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рднреА рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ UMD рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдЬрд╛рдирдмреВрдЭрдХрд░ рдореМрдЬреВрдж рд╣реИред (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░рдирд╛ рднреВрд▓ рдЧрдП рд╣реИрдВ)ред

рдпрд╛ рдЗрд╕реА рддрд░рд╣, рдПрдХ /// <reference types="..." /> рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ UMD рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП (рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ 'рдкреНрд░рддрд┐ рдореЙрдбреНрдпреВрд▓ рдирд┐рдпрдВрддреНрд░рдг' рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

@RyanCavanaugh # 26233 рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХреЛрдИ рдЭрдВрдбрд╛ рд╣реЛрдЧрд╛?

26233 рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ; рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдПрдХ UMD рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрдХреНрд╖ рддрдХ рдкрд╣реБрдБрдЪ рд╡реИрдз рд░реВрдк рд╕реЗ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рд╣реИ

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ "рд╡реИрдз рд░реВрдк рд╕реЗ рд╣рд╛рдирд┐рд░рд╣рд┐рдд" рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ @types/jquery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред $ рдФрд░ jQuery JQueryStatic рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдореИрдк рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд┐рдП рдмрд┐рдирд╛ $ рдФрд░ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@RyanCavanaugh рд╣рд╛рдБ, рдпрд╣ рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рд╣реИ рдХрд┐ TS emit рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк @types рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдпрдмреНрд░реЗрд░реА рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдареАрдХ рдкреНрд░рдХрд╛рд░ рд╕реЗ рджрд╛рдиреЗрджрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ - рдпрд╣ рдХрдо рд╕реЗ рдХрдо рд╡реИрд╕рд╛ рд╣реА рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реНрдХреЛрдкреНрдб рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИред рдЪреМрдбрд╝реАрдХрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рднрд▓реЗ рд╣реА рдЙрддреНрд╕рд░реНрдЬрди рдкреНрд░рднрд╛рд╡рд┐рдд рди рд╣реЛред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ jQuery рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрддреНрд╕рд░реНрдЬрди рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИред $() рдПрдХ рдЖрдпрд╛рдд рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИред

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

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди-рд╡рд╛рд░, рдпрд╣ рдХрд╛рдлреА рд╕реАрдзрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрд╕реЗ рдирд╛рдо рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдордиреЗ рд╕реБрдЭрд╛рд╡ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдмреИрдардХ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рджрд░реНрдЬрди рднрдпрд╛рдирдХ рдирд╛рдореЛрдВ рдХреЛ рд▓рд╛рдд рдорд╛рд░реА рдФрд░ рдЙрди рд╕рднреА рд╕реЗ рдирдлрд░рдд рдХреА, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреБрдЫ рдЦрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдХреГрдкрдпрд╛ рд░реЛрдХреЗрдВред

рд╣рдордиреЗ рд╕реБрдЭрд╛рд╡ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдмреИрдардХ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рджрд░реНрдЬрди рднрдпрд╛рдирдХ рдирд╛рдореЛрдВ рдХреЛ рд▓рд╛рдд рдорд╛рд░реА рдФрд░ рдЙрди рд╕рднреА рд╕реЗ рдирдлрд░рдд рдХреА

рд╡реЗ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рдереЗ?

рддреЛ рдпрд╣ рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рдХреЗ рд▓рд┐рдП y'all рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред

рд╢рд╛рдпрдж umdUseGlobal рдпрд╛ рдХреБрдЫ рдФрд░ред

рдореИрдВ UMD рд╡реИрд╢реНрд╡рд┐рдХ рдзреНрд╡рдЬ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП importAllNamespaces рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ UMD рдЧреНрд▓реЛрдмрд▓реНрд╕ рдЖрдорддреМрд░ рдкрд░ export as namespace ред

@RyanCavanaugh рдЯреАрдо рдиреЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА?

@FranklinWhale рд╣рд╛рдБред

@saschanaz рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдкреВрдЫрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рднреА рдЙрддреНрд╕реБрдХ рд╣реВрдВ ... @RyanCavanaugh рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ рдХрд┐ рднрдпрд╛рдирдХ рдирд╛рдореЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪреЗрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЪрд▓реА рдЧрдИ

  • allowUmdGlobalAccessFromModules - рд╕рдмрд╕реЗ рд╕рдЯреАрдХ рд▓реЗрдХрд┐рди soooooo рд▓рдВрдмрд╛
  • assumeGlobalUmd - рдКрдЧ
  • allowModuleUmdGlobals - "рдЧреНрд▓реЛрдмрд▓реНрд╕" ??
  • umdAlwaysGlobal -
  • allowUmdGlobals - рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
  • allowUmdGlobalAccess - рдореЙрдбреНрдпреВрд▓ рд╣рд┐рд╕реНрд╕рд╛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдХреЛрдИ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?

рдЕрдЧрд░ рдореБрдЭреЗ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЕрдВрддрд┐рдо рдПрдХ рдХреЛ рдЪреБрдиреВрдВрдЧрд╛

рдзрдиреНрдпрд╡рд╛рдж!

рдореБрдЭреЗ allowUmdGlobalAccessFromModules рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд▓рдВрдмрд╛ рд╣реИ, рдЗрд╕рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, "рдРрд╕рд╛ рдХреНрдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдпреВрдПрдордбреА рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЛ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ? рдЕрд░реЗ рд╣рд╛рдБ, рдпрд╣ allowUmdGlobalAccessFromModules , рдмрд┐рд▓реНрдХреБрд▓!"

рдЙрдкрд╕рд░реНрдЧ "рдЕрдиреБрдорддрд┐" рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рди рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдкреНрд▓рд╕ ... рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╣реИрдВ :)

allowUmdGlobalAccessFromModules : 31 рд╡рд░реНрдг

allowSyntheticDefaultImports : 28 рдЕрдХреНрд╖рд░
strictPropertyInitialization : 28 рдЕрдХреНрд╖рд░
suppressExcessPropertyErrors : 28 рдЕрдХреНрд╖рд░
suppressImplicitAnyIndexErrors : 30 рдЕрдХреНрд╖рд░
forceConsistentCasingInFileNames : 32 рдЕрдХреНрд╖рд░

рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреНрдпрд╛ рд╣реИ? рдореИрдВ рдкрд┐рдЫрд▓реЗ рдПрдХ рдШрдВрдЯреЗ рд╕реЗ рдЧреБрдЧрд▓реА рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХреЛрдИ рдХрд╛рдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЙрдкрд╛рдп рдирд╣реАрдВ рдЦреЛрдЬ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рднреА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП 'рдХреЛрдИ' рдпрд╛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдХрд╣реАрдВ рдПрдХ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдирд┐рд░реНрдорд╛рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рдВрдХрд▓рдХ рдзреНрд╡рдЬ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ?
(рд╡реИрд╕реЗ, 'allowUmdGlobalAccessFromModules' рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдирд╛рдо рд╣реИ; рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рджрд┐рди рдореЗрдВ 50 рдмрд╛рд░ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ :-))

рд╣рдо tsc 3.2.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╢реАрд░реНрд╖ HTML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡реИрдзрд╛рдирд┐рдХ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реИ; рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рдеред js; рдбреАред рдирд╡реАрдирддрдо рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрддред рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдЬреЛ рд╕рдВрдХрд▓рди рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:

/// <reference path="..." />

class Example<T extends IThingWithTitle<T>> {

    public test = (arg : T[]) : void => {
        _.sortBy(arg, (el : T) => { return el.title; }); // TS2686: '_' refers to a UMD global, but the current file is a module. Consider adding an import instead.
    };

}

export = Example;

(рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдордд рдмрддрд╛рдУ рдХрд┐ рдореБрдЭреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЙрд▓реНрдЯрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЫ рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рд╡рдХреНрд░ рдХреЗ рдкреАрдЫреЗ рд╣реИрдВ)

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ: ((window) ._) / * FIXME https://github.com/Microsoft/TypeScript/issues/10178 * /ред SortBy (...) рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд┐рдп рднрдЧрд╡рд╛рди, рдпрд╣ рдмрджрд╕реВрд░рдд рд╣реИ :-P

@ рдЧрд┐рд▓реЗ , рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рд╕рдорд╛рдзрд╛рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: https://github.com/Microsoft/TypeScript/issues/10178#issuecomment -263030856

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ? рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдРрд╕рд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдХрд╛рдо-рдХрд╛рдЬ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ( [email protected] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдБред


рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА:

import 'firebase';

declare global {
  const firebase;
}

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ firebase рдкреНрд░рдХрд╛рд░ any , рдФрд░ рдлрд┐рд░ рдЙрд╕ рдкрд░ рдирд╛рдорд╕реНрдерд╛рди (рд╕рдорд╛рди рдирд╛рдо рдХреЗ рд╕рд╛рде) рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ firebase рд╕рднреА рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдЯреВрд▓рдЯрд┐рдкреНрд╕ / рдЗрдВрдЯреЗрд▓реАрд╕реЗрдВрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрдм any рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ?::


рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рдлрд▓рддрд╛ рдХреЗ рдмрд┐рдирд╛ рдпрд╣рд╛рдВ рдмрддрд╛рдП рдЧрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ):

import _firebase from 'firebase'; // same with = require('firebase') 

declare global {
  const firebase: typeof _firebase;
}

=> 'рдлрд╛рдпрд░рдмреЗрд╕' рдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖ рдпрд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
(рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд╛рдо рд╕реНрдерд╛рди рдЕрд▓рд┐рдпрд╛рд╕ рд╣реИ?)


рдореИрдВрдиреЗ рднреА рдХреЛрд╢рд┐рд╢ рдХреА

import * as _firebase from 'firebase';

declare global {
  const firebase: typeof _firebase;
}

=> рдЖрдпрд╛рдд рдЙрд░реНрдл тАЛтАЛ'_firebase' рдХреА рд╕рд░реНрдХреБрд▓рд░ рдкрд░рд┐рднрд╛рд╖рд╛ред
(рд╢рд╛рдпрдж рдЗрд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ export = firebase; export as namespace firebase; рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг ?)


рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдЧрд░ рдореИрдВ рд╕рд┐рд░реНрдл import 'firebase' рд╣реВрдВ, рддреЛ рдореИрдВ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реВрдВ

'рдлрд╛рдпрд░рдмреЗрд╕' рдПрдХ рдпреВрдПрдордбреА рд╡реИрд╢реНрд╡рд┐рдХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИред [2686]


рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рд╕рд░рд╛рд╣рдиреАрдп рд╣реЛрдЧрд╛ред рдЕрдиреНрдпрдерд╛ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдХрд┐рд╕реА рднреА рд╕реБрдЭрд╛рд╡ рдХрд╛ рдЬреЛ рдЕрдм рддрдХ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╣ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ (рдЭрдВрдбрд╛, рдЯреНрд░рд┐рдкрд▓ рд╕реНрд▓реИрд╢ рд╕рдВрджрд░реНрдн, types tsconfig рдореЗрдВ, global рдпрд╛ external рд╡рд╕реНрддреБ) tsconfig рдореЗрдВ)ред

рд░реА @aluanhaddad рдХреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рд╕рдм рдЗрд╕ рдирд╕ рдореЗрдВ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ!

рдореИрдВ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдмрд╕ рдЕрдкрдиреЗ рдРрдк рдмрдВрдбрд▓ рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдХреБрдЫ рднрд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрдмрдХрд┐ рдЕрднреА рднреА рдмрд╛рдХреА рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреБрдЫ рд▓рд╛рдн рд▓рд╛рддрд╛ рд╣реИ: рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдареАрдХ рд╕реЗ рдХреИрд╢ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдореЗрд░реЗ рдРрдк рдмрдВрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдХреНрд╕рд░ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ; рдореЗрд░реЗ рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдореЗрдВ рд╡рд┐рд╕реНрдлреЛрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ (рдХрднреА-рдХрднреА рдХреЛрдб-рд╡рд┐рднрд╛рдЬрди рдХреЗ рдХрд╛рд░рдг рдмрдВрдбрд▓ рдореЗрдВ рдПрдХ рд╣реА рдирд┐рд░реНрднрд░рддрд╛ рдХрдИ рдмрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИ), рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдореЗрд░реЗ рдРрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрдо рдбрд╛рдЙрдирд▓реЛрдбрд┐рдВрдЧ; рджреЗрд╡ рдХреЗ рджреМрд░рд╛рди рдореЗрд░реЗ рдмрдВрдбрд▓реЛрдВ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рддреЗрдЬреА рд╕реЗ рд░рд╛рд╕реНрддрд╛ рд╣реИред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╕реБрд╡рд┐рдзрд╛ рд╣реИ; рдпрд╣ рдПрдХ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рджрд╕реНрдп рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@RyanCavanaugh рдореИрдВ рдЗрд╕ рдкрд░ рджреЗрдЦрд╛ рдФрд░ рд╕реЛрдЪрд╛ рдХреА рддрд░рд╣ рдореИрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░ compiler/types.ts рдФрд░ рдореЗрдВ UMD рд╡реИрд╢реНрд╡рд┐рдХ рдЬрд╛рдВрдЪ рд╕рдВрд╢реЛрдзрд┐рдд compiler/checker.ts , рдФрд░ рдореИрдВ рдореИрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рд▓рдЧрддрд╛ рд╣реИ compiler/commandLineParser.ts рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ ... рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдХрд╛рдлреА рд╕рдордп рд▓рдЧреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╕реНрд░реЛрдд рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ (рдЬреИрд╕реЗ рдореИрдВ i18n рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ CLI рдзреНрд╡рдЬ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╡рд░рдг рдХреИрд╕реЗ рдЬреЛрдбрд╝реВрдВ) ред рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдЬрд╛рдирддрд╛ рд╣реИред

@simonhaenisch рдЖрдк рдЗрд╕реЗ рдЧреИрд░-рдореЙрдбреНрдпреВрд▓ рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрдн рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рджреВрд╕рд░реЗ UMD рдореЙрдбреНрдпреВрд▓ рдШреЛрд╖рдгрд╛ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореВрд▓ firebase рдХреЛ рдПрдХ рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реА рдШреЛрд╖рдгрд╛ рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛, рддреНрд░реБрдЯрд┐ рдкреИрджрд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

// umd.d.ts
import firebase = require("firebase");
export import firebase = firebase;
export as namespace UMD;

// global.d.ts
declare const firebase: typeof UMD.firebase;

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдордиреЗ рдЬреЛ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рдПрдХ рдирд╛рдо рд╕реНрдерд╛рди рд╣реИ, рди рдХрд┐ рдирд╛рдо рд╕реНрдерд╛рди, рдЗрд╕рд▓рд┐рдП рдЖрдк let x: firebase.SomeInterface рдЬреИрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдирд╛рдо рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдЖрдпрд╛рдд рдШреЛрд╖рд┐рдд рдХрд░рдХреЗ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк declare import firebase = UMD.firebase; рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рдорд╛рди, рд╣рдо рдЖрд▓рд╕реА-рд▓реЛрдбрд┐рдВрдЧ hls.js (UMD) рдФрд░ рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

hls.d.ts :

import * as Hls from 'hls.js';
declare global {
    const Hls: typeof Hls;
}

рдЖрд▓рд╕реА рд▓реЛрдбреЗрдб UMD рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ .ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ:

/// <reference path="hls.d.ts" />
// now use it
if(Hls.isSupported()){
 ...
} 

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ> = 3.0.1 рдФрд░ 3.4.1 рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдЧрддрд┐рд╢реАрд▓ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП рд░рд╛рд╢рди рдЕрдзреВрд░рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рд╣реИред

@MatthiasHild /// <reference path="hls.d.ts" /> рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рд╣рд╛рдБ, рдпрд╣ рддрдм рддрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдШреЛрд╖рдгрд╛ рдореЗрдВ .d.ts рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рди рд╣реЛ, рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╛рди SO .ts рдкреНрд░рд╢реНрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ .ts рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рди рдирд╛рдо рди рд╣реЛ, (рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓ рд░рд╣рд╛ рдерд╛) рдФрд░ рдореИрдВрдиреЗ рдХреНрдпреЛрдВ рдкреВрдЫрд╛)ред

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

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

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

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

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

Roam-Cooper picture Roam-Cooper  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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