@nycdotnet рдХреЛ рд╕реБрдирдХрд░ рдореИрдВ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЧрдпрд╛ред рдзрдиреНрдпрд╡рд╛рдж, рд╕реНрдЯреАрд╡ред (рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдЖрдк рдЙрдирдХрд╛ рдЕрдЪреНрдЫрд╛ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: http://www.dotnetrocks.com/default.aspx?showNum=1149)
рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд╣рд▓реА рдмрд╛рд░ рдкреНрд░рд╛рдЧреИрддрд┐рд╣рд╛рд╕рд┐рдХ рдХрд╛рд▓ (#11 рд╕реЗ рдкрд╣рд▓реЗ рднреА) рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрдм рдбрд╛рдпрдирд╛рд╕реЛрд░ рдЭреБрд▓рд╕реА рд╣реБрдИ рдзрд░рддреА рдкрд░ рдЪрд▓реЗ рдереЗред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЕрдм рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯреЗрдВред рд╕реНрдЯреАрд╡ рдХрд╛ рдЕрдкрдирд╛ рдкреНрд░рд╕реНрддрд╛рд╡ #3394 рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕реЗ рд╣рд░ рджрд┐рди (#2338 рдФрд░ System.js рдкрд░ рдХрд╛рдо рдХреА рдорджрдж рд╕реЗ) рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рди рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЕрджреНрднреБрдд рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝рддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдереЛрдбрд╝реА рдмрд╛рдзрд╛ рд╣реЛрддреА рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рд╣реИ рдЬреЛ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, tsconfig.json рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди-рд╕реЗ-рд╕реЗрдЯрдЕрдк рддрд░реАрдХрд╛ рджреЗрддрд╛ рд╣реИред рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╡рд┐рднрд┐рдиреНрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдВрдЧреЗ, рдФрд░ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЖрдкрдХреЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЯреВрд▓ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯреВрд▓ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдФрд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ред
рд╕реНрдЯреАрд╡, рдЕрдкрдиреЗ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ, рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рджреБрдирд┐рдпрд╛ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рдореЙрдбрд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рдЙрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рддреАрди рдЖрдХрд╛рд░ рд╣реИрдВ:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрдЯреАрд╡ рдХрд╛ рддрд░реНрдХ рд╣реИ, рдЖрдкрдХреЛ рдордзреНрдпрдо рдЪрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЙрдкрдХрд░рдг рд╕рдорд░реНрдерди рдмрд╣реБрдд рдЬрд▓реНрджреА рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдо "рдордзреНрдпрдо рдЖрдХрд╛рд░" рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВред рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдорд╛рдирдХ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдЬ tsconfig.json рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрдИ рдШрдЯрдХреЛрдВ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдпрд╣рд╛рдВ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдХрд╛рдлреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рд╕рдорд░реНрдерди рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░реЛрд╕рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╕рдВрдХрд▓рди рдФрд░ рдЖрдИрдбреАрдИ рдореЗрдВ рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП "рдордзреНрдпрдо рдЖрдХрд╛рд░" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рдЕрдиреБрднрд╡ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ _not_ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрдХрд▓рди рд╢рд╛рдорд┐рд▓ рд╣реИ, рдпрд╛ рд╕рдВрдХрд▓рдХ рдЖрдЬ рдЬреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рд╣рд░ рдХреЛрдИ рдЪрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рдмрдВрдбрд▓рд┐рдВрдЧ рдпрд╛ рдкреИрдХреЗрдЬрд┐рдВрдЧ рднреА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗрд╡рд▓ 'рдордзреНрдпрдо рдЖрдХрд╛рд░' рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЙрдирдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛред
рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ tsconfig.json рджреВрд╕рд░реЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг tsconfig.json рдЖрдЬ рдХрд╛:
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"sourceMap": true
},
"files": [
"core.ts",
"sys.ts"
]
}
рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд tsconfig.json 'рдирд┐рд░реНрднрд░рддрд╛' рдЕрдиреБрднрд╛рдЧ:
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"sourceMap": true
},
"dependencies": [
"../common",
"../util"
],
"files": [
"core.ts",
"sys.ts"
]
}
рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдпрд╛ рддреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИрдВ:
рдирд┐рд░реНрднрд░рддрд╛ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╣реИрдВред рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЦреЛрд▓рдиреА рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рд░реВрдЯ tsconfig.json рд╣реЛред рдЗрд╕рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдЪрдХреНрд░реАрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЕрд░реНрдерд╛рддреН рд╡реЗ рдкреНрд░рдХрд╛рд░ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВ, рдкреВрд░реНрдг рд╕рдВрдХрд▓реНрдк рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдкрд╣рд▓реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдХреНрд░рдо рдореЗрдВ рд╡реЗ 'рдирд┐рд░реНрднрд░рддрд╛' рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрддреА рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддреА рд╣реИ, рддреЛ рд╕рдВрдХрд▓рдХ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╢реЗрд╖ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЬрд╛рд░реА рдирд╣реАрдВ рд░рдЦреЗрдЧрд╛ред
рдЬреИрд╕реЗ рд╣реА рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрднрд░рддрд╛ рдкреВрд░реА рд╣реЛрддреА рд╣реИ, рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реА '.d.ts' рдлрд╝рд╛рдЗрд▓ рд╡рд░реНрддрдорд╛рди рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдИ рдЬрд╛рддреА рд╣реИред рдПрдХ рдмрд╛рд░ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдкреВрд░реА рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХ 'рдлрд╛рдЗрд▓' рдЕрдиреБрднрд╛рдЧ рдкреНрд░рджрд╛рди рди рдХрд░рдХреЗ рдЗрд╕рдХреЗ рд╕рдВрдХрд▓рди рдХрд╛ рднреА рддрд╛рддреНрдкрд░реНрдп рд╣реИ, рддреЛ рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрднрд░рддрд╛ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рдВрдХрд▓рди рд╕реЗ рднреА рд╣рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИред
рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреА рд╣реИред рдЪреВрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ tsconfig.json рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕рдордиреНрд╡рд┐рдд рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рд╣реЛрдЧреА рдЬреЛ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ, рдХреЛрдб рдиреЗрд╡рд┐рдЧреЗрд╢рди, рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдЖрджрд┐ рдореЗрдВ рд╕рдХреНрд╖рдо рдереАред
рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ tsconfig.json рдирд╣реАрдВ рд╣реИ, рдПрдХ рддреНрд░реБрдЯрд┐ рдорд╛рдиреА рдЬрд╛рддреА рд╣реИред
рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕реНрд╡-рдирд┐рд╣рд┐рдд рдФрд░ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЕрд▓рдЧ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рдЖрдк tsconfig.json рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ .js рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдмрд╛рд╣рд░реА рдЙрдкрдХрд░рдг, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЗ рдореЗрдВ:
рдП - рдмреА
\ рд╕реА
рдП 'рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛' рд╣реИ рдФрд░ рджреЛ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ: рдмреА рдФрд░ рд╕реАред рдпрджрд┐ рдмреА рдФрд░ рд╕реА рд╕реНрд╡рдпрдВ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдорд╛рдорд▓рд╛ рдЫреЛрдЯрд╛ рд╣реИред рдпрджрд┐ C, B рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ B, C рдХреЛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рд╡реГрддреНрддрд╛рдХрд╛рд░ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐, рддрдерд╛рдкрд┐, B, A рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡реГрддреНрддрд╛рдХрд╛рд░ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред
рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, B, C рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ рдФрд░ C рд╕реНрд╡-рдирд┐рд╣рд┐рдд рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рдЪрдХреНрд░ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрдХрд▓рди рдХреНрд░рдо рд╕реА, рдмреА, рдП рд╣реЛрдЧрд╛, рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ /// рд░реЗрдлрд░реА рдХреЗ рддрд░реНрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд┐рдЫрд▓реЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ '.d.ts' рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рдВрдХрд▓рди рдиреЗ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдмрдирд╛рдИ рд╣реИрдВ рдЬреЛ рдмрд╛рдж рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА 'рдирд┐рд░реНрднрд░рддрд╛' рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА (рдЬреИрд╕рд╛ рдХрд┐ рд╕реАрдорд╛ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реБрдЖ)ред
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЬрд┐рд╕рдореЗрдВ tsconfig.json рддреНрд░реБрдЯрд┐ рдорд╛рдорд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд╣рдо рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ 'рдлрд╝рд╛рдЗрд▓реЗрдВ' рдФрд░ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЙрд╕ рдирд┐рд░реНрднрд░рддрд╛ рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣реЗ рднрдЧрд╡рд╛рди!
:+1:
рд╣рд╛рдВ! рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЯреВрд▓ рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдХреИрд╕реЗ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рдХрд╛рдо рд╣реИред рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЧрд▓рддреА рд╕реЗ .d.ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ F12 рдХрд░рддрд╛ рд╣реВрдБ рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдмрд┐рд▓реНрд▓реА рдХреЗ рдмрдЪреНрдЪреЗ рдХрд╛ рдЧрд▓рд╛ рдШреЛрдВрдЯ рд░рд╣рд╛ рд╣реВрдБ!
рдЬреЛрдирд╛рдерди,
рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕реЗ рд▓реЗрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдРрд╕рд╛ рдорд╣рд╛рди рдЙрдкрдХрд░рдг рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░реЗрдЧреА рдЬреЛ рдЕрдкрдиреЗ рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреЗ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдШрдЯрдХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЕрдХреНрд╖рдорддрд╛ рдХреЛ рдЙрдЪрд┐рдд рдирд╣реАрдВ рдард╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЪрд┐рдВрддрд╛рдУрдВ рдХреЗ рд╕рдЦреНрдд рд╡рд┐рднрд╛рдЬрди рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдЬрд╝реВрд░ рдкреЛрд░реНрдЯрд▓реНрд╕ рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЛрдирд╛рдХреЛрд╕ рдХрд╛ рджреБрдирд┐рдпрд╛> 100kloc рдФрд░ рдХрдИ рд╕реНрд╡рддрдВрддреНрд░ рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде)ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдирд┐рдпрдорд┐рдд рд▓реЛрдЧреЛрдВ" рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред рд╕рд╛рде рд╣реА, рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП @NoelAbrahams (#2180), рдФрд░ рдЕрдиреНрдп рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣рд╛рдВ рдореМрд▓рд┐рдХрддрд╛ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдХреБрдЫ рд╕рдордп рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЙрддреНрдХреГрд╖реНрдЯ рд╣реИред рдореЗрд░реЗ рдкреНрд░рд╕реНрддрд╛рд╡ (#3394) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдХрдореА рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрдм рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рд╣реИ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рдлреЙрд▓рдмреИрдХ рддрдВрддреНрд░ рдХреА рдХрдореАред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рд╡рд┐рд╕реНрддреГрдд рдХрд┐рдпрд╛ рд╣реИ: https://github.com/Microsoft/TypeScript/issues/3394#issuecomment -109359701
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреНрд░рдВрдЯ-рдЯреАрдПрд╕ рд╣реИ рдЬреЛ рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ csproj2ts рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЧреНрд░рдВрдЯ-рдЯреАрдПрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╢рд╛рдпрдж рд╣реА рдХреЛрдИ csproj2ts рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рджрд╛рдпрд░рд╛ рдмрд╣реБрдд рд╕реАрдорд┐рдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реЗ рдЬреИрд╕реЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП - рджреЛрдиреЛрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдФрд░ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд░рдирд╛/рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдирд╛/рдЙрдирдореЗрдВ рд╕рднреА рд╕рдВрджрд░реНрдн рдвреВрдВрдврдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛, рддреЛ рдореИрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд╕реНрддреБ рдирд╛рдорд┐рдд рдлреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рд╢рд╛рдмреНрджрд┐рдХ рд╣реЛред рдЖрдкрдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдПрдХ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдЧрд╛:
"dependencies": {
"csproj2ts": ["../csproj2ts","node_modules/csproj2ts/csproj2ts.d.ts"],
"SomeRequiredLibrary": "../SomeRequiredLibraryWithNoFallback"
}
рдЗрд╕реЗ рдЕрднреА рднреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЧреНрд░рдВрдЯ-рдЯреАрдПрд╕ tsconfig.json
рдлрд╝рд╛рдЗрд▓ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдХрд╛рд▓реНрдкрдирд┐рдХ dependencies
рдЕрдиреБрднрд╛рдЧ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ:
"dependencies": [
["../csproj2ts","node_modules/csproj2ts/csproj2ts.d.ts"],
"../SomeRequiredLibraryWithNoFallback"
]
dependencies
рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рд░рдгреА-рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдирд┐рдпрдо рд╣реЛрдЧрд╛: _first_ рдЖрдЗрдЯрдо рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд╣ рд╡рд╣ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдХреА рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдЯреНрд░рд┐рдВрдЧ-рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛрдирд╛рдерди рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓-рд╕реЗ-рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдорд╛рдзрд╛рди рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдбреЗрд╡рд▓рдкрд░ (рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХреЛрдВ) рдХреЛ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рджреЗрддрд╛ рд╣реИред рдЙрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ csproj2ts рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдФрд░ рдЗрд╕рд▓рд┐рдП ../csproj2ts/tsconfig.json
рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ), рдирд┐рд░реНрднрд░рддрд╛ рдХреЗрд╡рд▓ рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ рд╣реЛрдЧреА рдЬреЛ рд╕рдВрдХрд▓рди рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддреА рд╣реИред рдЬрд┐рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ _do_ рдХреЗ рдкрд╛рд╕ ../csproj2ts/tsconfig.json
рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡ рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рдКрдкрд░ рдмрддрд╛рдпрд╛ рд╣реИред
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЖрдкрдХреЗ рдореМрдЬреВрджрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреА рддрд░рд╣ рд╣реА "../SomeRequiredLibraryWithNoFallback"
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдЗрд╕рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред
рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред
рдпрд╣рд╛рдБ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣рд╛рдБ рдирд┐рд░реНрдорд╛рдг рд╣реИ, рдФрд░ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рд╕рдорд░реНрдерди рд╣реИред
рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ tsconfig рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЬрдЧрд╣ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдирд┐рдореНрди рдХреЗ рд╡реНрдпрд╡рд╕рд╛рдпреЛрдВ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдпреЗ рд╕рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИрдВ; рдпреЗ рдХрдард┐рди рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕реЗ рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдПрдордПрд╕рдмрд┐рд▓реНрдб, рдЧреНрд░рдВрдЯ, рдЧрд▓реНрдк рдЗрддреНрдпрд╛рджрд┐ред
рдПрдХ рдмрд╛рд░ рдЬрдм tsconfig рдФрд░ tsc рдмрд┐рд▓реНрдб рдбреНрд░рд╛рдЗрд╡рд░ рдмрди рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рднреА CPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдЯреНрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗ, рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯ рдФрд░ рдкреНрд░реА рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рд╣реЛ, рдФрд░ рд╕рдВрднрд╡рддрдГ рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рднреА рдмрдирд╛ рд╕рдХреЗред рдлрд┐рд░ рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдРрд╕реЗ рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рд╡реЗ рдЬреЛ рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕рдореЗрдВ рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП,
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯреВрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрдИ tsconfig рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдареАрдХ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдФрд░ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЖрдкрдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдХреБрдЫ рдРрд╕рд╛ рдорд╛рдиреВрдВрдЧрд╛:
"files" : [
"file1.ts",
{
"path": "../projectB/out/projectB.d.ts",
"sourceProject": "../projectB/"
}
]
рдЬрд╣рд╛рдВ tsc рдХреЗрд╡рд▓ "рдкрде" рдХреЛ рджреЗрдЦреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрдкрдХрд░рдг рдЕрдиреНрдп рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд╣рд╛рдпрдХ рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪрддрд╛ рдХрд┐ рд▓рдВрдкрд┐рдВрдЧ рдмрд┐рд▓реНрдб рдФрд░ рдЯреВрд▓рд┐рдВрдЧ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рд╣реИред tsconfig.json рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмреИрдЧ (рдпрд╛рдиреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ json рд╡рд┐рдХрд▓реНрдк) рдмрдирд╛ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдирд╣реАрдВ рдмрдирдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ tsconfig.json рдПрдХрд▓ tsc рдЖрдордВрддреНрд░рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред tsc рд╕рд┐рдВрдЧрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡реАрдПрд╕ рдореЗрдВ рдПрдордПрд╕рдмрд┐рд▓реНрдб рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЖрдИрдбреАрдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдФрд░ рдЕрдм рдкреАрдкреАрдПрд▓ рдЗрд╕рд╕реЗ рдЦреБрд╢ рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИред
рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореЛрд╣рдореНрдорджред рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рджреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ:
tsc --project
рдкрд░ tsconfig.json
рдЪрд▓рд╛рдирд╛ tsc file1.ts ../project/out/project.d.ts
рдЪрд▓рд╛рдиреЗ рдЬреИрд╕рд╛ рд╣реА рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реАрдПрд╕ рдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЦреЛрд▓рдиреЗ рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЛ _рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓_ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП "рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдиреЗ" рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓ рдЬрд╛рдПрдЧреА рдЬрд╣рд╛рдВ рд╕реБрд╡рд┐рдзрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рдереА ( projectB.d.ts
рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдмрдЬрд╛рдп)рдХреНрдпрд╛ рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╣ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ?
рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╣реА рдЙрдЪрд┐рдд рд╣реИред рдореЗрд░реЗ рдореВрд▓ рдкреНрд░рд╕реНрддрд╛рд╡ (https://github.com/Microsoft/TypeScript/issues/3394) рдореЗрдВ, рдореИрдВрдиреЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдЕрдзреВрд░рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХрд╛ рдЪрд░рдг рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдерд╛ рдЬрд╣рд╛рдВ рд╕реЗ рд╡реЗ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдВрдЧреЗ рд╕рдВрджрд░реНрднрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЬрд╣рд╛рдВ рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдиреНрд╣реЗрдВ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЙрдореНрдореАрдж рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ "рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕рдбрд╝рдХ рдХреЗ рдЖрдзреЗ рд░рд╛рд╕реНрддреЗ рдиреАрдЪреЗ рдХреНрдпреЛрдВ рдЬрд╛рдПрдВ рдЬрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ"ред
рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд╣реЛрдВрдЧреЗ?
"files" : [
"file1.ts",
{
"path": "externalLibraries/projectB.d.ts",
"sourceProject": "../projectB/"
}
]
рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдмреА рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд░реЗрдЧрд╛ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрджрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдмреА рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрд░реЛрдд рдЙрдкрд▓рдмреНрдз рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
@nycdotnet рдЖрдкрдиреЗ рдЗрд╕реЗ рд╕рд╣реА рдмрддрд╛рдпрд╛; рдореИрдВ рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рд╢рд┐рдерд┐рд▓ рд░реВрдк рд╕реЗ рдпреБрдЧреНрдорд┐рдд рд╣реЛ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ IDE рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕ рдХреЛ рдорд┐рд▓рд╛рдиреЗ рдФрд░ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рдмреЗрд╣рддрд░реАрди рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рдордп рдХрд╛ рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ!
рдореИрдВ @mhegazy рд╕реЗ рд╕рд╣рдордд
рдлрд╝рд╛рдЗрд▓ рдФрд░ рдкреИрдХреЗрдЬ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЙрд╕ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреА рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝, рд╕рд┐рд╕реНрдЯрдордЬ, рд╡реЗрдмрдкреИрдХ рдЗрддреНрдпрд╛рджрд┐), рдЗрд╕рд▓рд┐рдП рдЯреВрд▓реАрдВрдЧ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдХреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдХрд┐ рдЖрдк рдЬреЛ рднреА рд╕рд┐рд╕реНрдЯрдо/рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо рдмрдирд╛рддреЗ рд╣реИрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╛ рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо LanguageServicesHost рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреВрд▓ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдЬреЛ tsconfig.json рдореЗрдВ рд╕рд╣реА рдореИрдкрд┐рдВрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред
@nycdotnet рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХрд╛рдзрд┐рдХ рдлрд╝реЙрд▓рдмреИрдХ рдкрдереЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ npm link ../csproj2ts
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛?
рдореИрдВ @mhegazy рд╕реЗ рд╕рд╣рдордд
"рдлрд╛рдЗрд▓реЗрдВ" : [
{
"рдкрде": "externalLibraries/projectB.d.ts",
"рд╕реЛрд░реНрд╕рдкреНрд░реЛрдЬреЗрдХреНрдЯ": "../рдкреНрд░реЛрдЬреЗрдХреНрдЯрдмреА/"
}
]
tsconfig.json рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрднреА рднреА рд╕рднреА ts рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреАред
@dbaeumer рдлрд┐рд░ рдЖрдк рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣реИ рдирд╛? рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрджрд┐ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдо рд╢рд╛рдорд┐рд▓ *.ts рднрд╛рдЧ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрддреЗ рд╣реИрдВред
@mhegazy рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдПрдХ рдЕрд▓рдЧ рдЦрдВрдб рд╣реЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдВрдд рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛ред рдЕрдЧрд░ рдореИрдВ tsconfig -> tsconfig рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореИрдВ рдЕрднреА рднреА рдХрд┐рд╕реА *.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдлреАрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдмрд╣реБрдд рдЬрд░реВрд░рдд рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдо рдмрд┐рд▓реНрдб рдкреНрд░рд╢реНрди рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЬреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рд╣реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЧреИрд░-рддреБрдЪреНрдЫ рд╣реЛрдЧрд╛ (рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред
рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ (рдЬрд╣рд╛рдВ .d.ts рдФрд░ рд╕реНрд░реЛрдд рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдХреНрдпрд╛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ .d.ts рдкреБрд░рд╛рдирд╛ рд╣реИ (рдпрд╛рдиреА рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)? рдХреНрдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд░рд┐рдлреИрдХреНрдЯрд░/рдирд╛рдо рдмрджрд▓реЗрдВ рдЬреИрд╕реЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛рдиреА рд╕рдВрджрд░реНрднрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрд░реЛрдд рдореЗрдВ рдирд╛рдо рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдХреЗрд╡рд▓ рдЗрд╕рдХреА .d.ts рдлрд╝рд╛рдЗрд▓ рдЬреЛ рдЕрдЧрд▓реЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗрдЧреА)? рдХреНрдпрд╛ GoToDef рдореБрдЭреЗ рд╕рдВрджрд░реНрднрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдореВрд▓ рдХреЛрдб рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ (рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд╛рд▓ .d.ts рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмреАрдЪ рдореЗрдВ рдирд╣реАрдВ)? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕реНрд░реЛрдд рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рдХрд┐рд╕ рдорд╛рдорд▓реЗ рдореЗрдВ .d.ts рдЙрдкрдпреЛрдЧреА рд╣реИ?
рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди, рдЬреЛ рдЖрдЬ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд┐рд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ .d.ts рд╣реИ, рдФрд░ рдлрд┐рд░ рджреВрд╕рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рд╣реИред рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рд╕рдВрдкрд╛рджрди рдкрд░рд┐рджреГрд╢реНрдп рд╣реИред рдЖрдк рд╕рдВрдкрд╛рджрди рдХрд░рддреЗ рд╕рдордп рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдПрдХ "рд╕рдВрдХреЗрдд" рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗ рдЙрддреНрдкрдиреНрди .d.ts рдЖрдпрд╛ рдерд╛ред рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рддрдм .d.ts рд▓реЛрдб рдирд╣реАрдВ рдХрд░реЗрдЧреА, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕рдВрдХреЗрдд рдкрде рд╕реЗ "рдкреНрд░реЛрдЬреЗрдХреНрдЯ" рд▓реЛрдб рдХрд░реЗрдЧреАред рдЗрд╕ рддрд░рд╣ рдЧреЛрдЯреЛ рдбреАрдлрд╝ рдЖрдкрдХреЛ .d.ts рдХреЗ рдмрдЬрд╛рдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реА рддрд░рд╣ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╕рдВрдХрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░реЗрдВрдЧреАред
рдирд╛рдо рдмрджрд▓рдиреЗ рдЬреИрд╕реЗ рд╕рдВрдЪрд╛рд▓рди, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рджреВрд╕рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ "рдкреНрд░рдЪрд╛рд░" рдХрд░реЗрдВрдЧреЗ, рдЗрд╕реА рддрд░рд╣ рд╕рдВрджрд░реНрдн рдвреВрдВрдвреЗрдВрдЧреЗ, рдХрд░реЗрдВрдЧреЗред
рдЖрдЬ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ tsconfig.json рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ (рдЖрдИрдбреАрдИ, рдЬреЛ рдХреБрдЫ рднреА) рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЯреАрдПрд╕ рдлрд┐рд░ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рдХрд╛рд░реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдлреИрд╢рди рдореЗрдВ рдХрдИ tsconfig.json рд╕реНрдерд┐рдд рд╣реЛрдВ? рдХреНрдпрд╛ рд╣реЛрд╕реНрдЯ рдЕрднреА рднреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдирд╣реАрдВ рдпрд╛ рд╣реЛрд╕реНрдЯ рд╕рднреА tsconfigs рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛?
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реБрд╡рд┐рдзрд╛/рд╕рдореНрдореЗрд▓рди рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдордЭреМрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ #2568 (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕рд╛рдкреЗрдХреНрд╖ рдЖрдпрд╛рдд) рдореЗрдВ рд╡рд░реНрдгрд┐рдд d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧрд╛?
@spion рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рдирд┐рд░реНрднрд░рддрд╛ рджреЗрдЦрддрд╛ рд╣реВрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдХрдИ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдПрдХрд▓ рдбрд┐рд▓реЗрдХреНрдЯреЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИред рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрднрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рддрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
@mhegazy рдУрд╣, рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдкрд░ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдврд╝рд╛:
- рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ: рдорд╛рдирдХ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╕рд╛рдЭрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде
рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдирдкреАрдПрдо/рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝ (рдпрд╛ рд╡реЗрдмрдкреИрдХ) рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╕рдорд░реНрдерди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рд╣реИрдВред
AFAIK рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ .d.ts рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдПрдХ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ tsconfig.json рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛:
{
"provides": "external-module-name"
}
рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп tsconfig.json
рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ LS рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛
AFAIK рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ .d.ts рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ?
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рдЪ рд╣реИред tsc --m --d
рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдЬреЗрдирд░реЗрдЯ рд╣реЛрдЧреА рдЬреЛ рдПрдХ рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рд╣реИред рд╕рдВрдХрд▓реНрдк рддрд░реНрдХ рдПрдХ .ts рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ рдФрд░ рдпрджрд┐ рдирд╣реАрдВ рддреЛ рдЙрд╕реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ .d.ts,
@spion рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП d.ts рдлрд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ @mhegazy рдиреЗ рдХрд╣рд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ 1:1 рдЕрдиреБрдкрд╛рдд рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЖрдо рддреМрд░ рдкрд░ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдЯреНрд░рд╛рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ: https://github.com/TypeStrong/dts-bundle
@mhegazy рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░рд╛ рдорддрд▓рдм "рдкрд░рд┐рд╡реЗрд╢ рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓" рдХреЗ рд▓рд┐рдП рдерд╛, рдпрд╛рдиреА рдЕрдЧрд░ рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ external-module-name
рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреА рдПрдХ рдХрдХреНрд╖рд╛ рдХреЛ рджреВрд╕рд░реЗ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ:
import {MyClass} from 'external-module-name'
рд╡рд╣рд╛рдБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ tsc
рдЙрдЪрд┐рдд .d.ts рдлрд╝рд╛рдЗрд▓ рдХрд┐ рд╡рд╛рдгреА рдЙрддреНрдкрдиреНрди 'external-module-name'
@nycdotnet рдореБрдЭреЗ рдбреАрдЯреАрдПрд╕-рдмрдВрдбрд▓ рдФрд░ рдбреАрдЯреАрдПрд╕-рдЬрдирд░реЗрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЕрдЧрд░ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдХреЛ рдореЗрд░реА рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╣реИ, рддреЛ рдпрд╣ рднреА рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдХреМрди рд╕рд╛ рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдпрд╛рдд рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ
рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЖрдк рдЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ "requirejs" рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рд╕реНрд░реЛрдд рд╣реИ?
@llgcode рдХреГрдкрдпрд╛ https://github.com/Microsoft/TypeScript/issues/5039 рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдпрд╣ typescript@next
рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдЙрдк-рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЧрд▓реНрдкрдлрд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрддрдирд╛ рдХрдард┐рди рдХреНрдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреИрд╕реЗ рд╣реЛрддреА рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднреА рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ tsconfig.json рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдг рд╡реАрдПрд╕ рдХреЛрдб рд╣реИ
рдкрд╣рд▓реЗ рдореИрдВ рдЧрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ред рджреВрд╕рд░рд╛ рдпрд╣ рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рд╣рд░ рдмрд╛рд░ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЧрд▓реНрдк рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВред
@llgcode рдареАрдХ рд╣реИ, рдЧрд▓реНрдк рдПрдХ рдХрд╛рд░реНрдп рдзрд╛рд╡рдХ рд╣реИред рдЖрдк рдПрдХ gulpfile.js рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдЖрдк gulp.task()
рд╕рд╛рде рдЬрд┐рддрдиреЗ рдЪрд╛рд╣реЗрдВ рдЙрддрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЗ рдЕрдВрджрд░, рдЖрдк gulp.src()
рд╕рд╛рде рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рдзрд╛рд░рд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ .pipe()
рдЙрдиреНрд╣реЗрдВ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреА рдПрдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рд╕рдВрдХрд▓рди, рд╕рдВрдпреЛрдЬрди, рдЦрдирди, рд╕реНрд░реЛрддрдореИрдк, рд╕рдВрдкрддреНрддрд┐ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ ... рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреБрдЫ рднреА рдХрд░реЗрдВ рдЬреЛ рдиреЛрдб рдФрд░ рдПрдирдкреАрдПрдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реЛред
рдпрджрд┐ рдЖрдкрдХреЛ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реИ, рддреЛ рдмрд╕ рдЙрд╕ рдХрд╛рд░реНрдп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХрд╛рдзрд┐рдХ tsconfig.json рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЧрд▓реНрдк-рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ, рдпрд╛ рдЖрдк рдХреЗрд╡рд▓ рдЬреЗрд╕рди рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рднреА рд╕рдВрднрд╡ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреИрд╕реЗ рд╕рдВрд░рдЪрд┐рдд рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░реЗрдкреЛ рдореЗрдВ рд╣реИ рдФрд░ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╛ рдЬреЛ рднреА рд╣реЛред рд▓реЗрдХрд┐рди рдЧрд▓реНрдк 100% рд▓рдЪреАрд▓рд╛ рд╣реИред
рдареАрдХ рд╣реИ рдзрдиреНрдпрд╡рд╛рдж рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрдХрд░рдг рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдЕрдЧрд░ рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ ("mylibs/lib") рдЬреИрд╕реЗ рдореИрдкрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдореЗрд░реА рдлрд╛рдЗрд▓реЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ/src/lib.js рдореЗрдВ рд╣реИрдВ рддреЛ рдкреВрд░реНрдгрддрд╛ рдкрд░рдорд╛рдгреБ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреА рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдЧрд▓реНрдк рдХреИрд╕реЗ рд╣рд▓ рд╣реЛрдЧрд╛ рдореИрдкрд┐рдВрдЧ/рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди "mylibs" рдФрд░ рд╕реНрдерд╛рдиреАрдп рдкрде рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ #5039 рдореЗрдВ рдпрд╣ рдирдпрд╛ рд╡рд┐рдХрд▓реНрдк рдкрде рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИред
@llgcode рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЧрд▓реНрдк рдХреЗ рд╕рд╛рде рдЖрдк рдЧреНрд▓реЛрдм рдХреЗ рд╕рд╛рде рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ (.d.ts рдлрд╛рдЗрд▓реЛрдВ рд╕рд╣рд┐рдд) рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рджреЗрдЦреЗрдВ https://www.npmjs.com/package/gulp-typescript#resolving -filesред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╣рд╛рдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ рд╣реИ рди рдХрд┐ рдПрдХ рдмрд┐рд▓реНрдб рдЯреВрд▓ред рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд "рдирд┐рд░реНрднрд░рддрд╛" рдХрд╛ рдкреНрд░рдмрдВрдзрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рддрд╛рд░-рддрд╛рд░ рдХрд░рдирд╛ рдЙрдкрдХрд░рдг рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИред
@felixfbecker рдореИрдВ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдБред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрд╛рдЗрд▓рд░ (рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде) рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЬреАрд╕реАрд╕реА -> рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
рдЬрд╛рд╡рд╛ -> рдХреНрд▓рд╛рд╕рдкрд╛рде рдФрд░ рд╕реЛрд░реНрд╕рдкрд╛рде
рдЬрд╛рдУ -> рдЧреЛрдкрде
рдЕрдЬрдЧрд░ -> рдЕрдЬрдЧрд░рдкрде
рдХрдВрдкрд╛рдЗрд▓рд░/рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдХреМрди рд╕реА рд╕реЛрд░реНрд╕ рдлрд╛рдЗрд▓реНрд╕ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдХреМрди рд╕реА рд╕реЛрд░реНрд╕ рдлрд╛рдЗрд▓реНрд╕ рдореЗрдВ рд╕рд┐рд░реНрдл рд╢рд╛рдорд┐рд▓/рд▓рд┐рдм рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред
рдлрд╝рд╛рдЗрд▓ рдмрджрд▓рдиреЗ рдкрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд▓реНрдк рдЬреИрд╕реЗ рдмрд┐рд▓реНрдб рдЯреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
@llgcode рд╕реЗ рд╕рд╣рдордд рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХреНрд╕рдкреЛрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЙрдЬрд╛рдЧрд░ рд╣реЛрддреА рд╣реИ, рдЬреЛ IDE рдХреЛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ) рдФрд░ рдкреВрд░реНрдгрддрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдФрд░ рдЙрд╕реЗ рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдкреЗрдбрд╝ рдкрд░ рдЪрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
@llgcode @unional рдорд╛рдиреНрдп рдЕрдВрдХред рдПрдХ рдмрд╛рдд рдпрд╣ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП files
tsconfig.json globs рд╕реНрд╡реАрдХрд╛рд░ рддрд╛рдХрд┐ рдЖрдк рд╕рднреА рдлрд╝реЛрд▓реНрдбрд░ рдЖрдк рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдореЗрдВ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ред рд▓реЗрдХрд┐рди рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдХрд╣рд╛рдВ рд╕реЗ рдЖ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ tsconfig.json рдХреНрдпреЛрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдХреЙрдордирдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП AFAIK рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА node_modules
рдФрд░ npm link ../path/to/other-project
рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИ
рдЬреИрд╕реЗ рд╣реА рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдПрдирдкреАрдПрдо рд▓рд┐рдВрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдЦреБрдж рдХреА рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ rxjs рд▓реЗрддреЗ рд╣реБрдП) рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ 'рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ'ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╢рд╛рдорд┐рд▓ рдкрде рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рд╕рд┐рдорд▓рд┐рдВрдХ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрджред рд╕рдорд╛рдзрд╛рди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЧрд▓реНрдк рдХрд╛рд░реНрдп рдпрд╛ рд╕реНрдерд╛рдиреАрдп/рдирд┐рдЬреА npm рд░реЗрдкреЛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИ, рдореВрд▓ рд░реВрдк рд╕реЗ рдмрдбрд╝реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд╛рдкрд╕ред
@EricABC рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╡реЗ рдкрд░рд┐рд╡реЗрд╢реА рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдШреЛрд╖рдгрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдирдИ рд╕рдорд░реНрдерд┐рдд node_modules
рдЖрдзрд╛рд░рд┐рдд .d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЯреАрдПрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗрд╡рд▓ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╡реЗ рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЖрддреЗ рд╣реИрдВ рдпрд╛ рдЬрдм рддрдХ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВ рддрдм рддрдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдо рд╣реЛрддреЗ рд╣реИрдВред
рдзрдиреНрдпрд╡рд╛рдж @spion , рдмрд╕ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓-рдЖрдзрд╛рд░рд┐рдд рдерд╛, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдореБрдЭреЗ рдХреБрдЫ рдЖрддреНрдо-рдкреАрдбрд╝рд┐рдд рджрд░реНрдж рд╕реЗ рдмрдЪрд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред
рдПрдХ рдЪреАрдЬ рдЬреЛ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИ рд╡рд╣ рд╣реИ tsconfig.json рдореЗрдВ рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЧреНрд▓реЛрдмреНрд╕ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ ...
рдЪрд░реНрдЪрд╛ рдореЗрдВ include
рд╕рдВрдкрддреНрддрд┐ рд╣реИ
рдкреНрд░рд╢реНрди рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ:
dependencies
рдХреЛ рдкреВрд░реНрдг tsconfig.json рдкрде рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ tsc рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИfiles
рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдареАрдХ рд╣реИ рддреЛ рдПрдХ рдирдпрд╛ рдХреАрд╡рд░реНрдб ( dependencies
) рдХреНрдпреЛрдВ рдкреЗрд╢ рдХрд░реЗрдВ?{
"compilerOptions": {
// ...
},
"files": [
"../common/tsconfig.json", // <== takes the `files` part of the tsconfig.json
"../common/tsconfig.util.json", // <==
"core.ts",
"sys.ts"
]
}
compilerOptions
?рдЖрдЗрдП рдЖрдЧреЗ рдЪрд▓рддреЗ рд╣реИрдВ/рдЬрдВрдЧрд▓реА :-) рдФрд░ рд╕рдВрднрд╡рддрдГ (рднрд╡рд┐рд╖реНрдп рдореЗрдВ) compilerOptions
, exclude
... рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп tsconfig.json рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ:
// File app/tsconfig.json
{
"compilerOptions": "../common/tsconfig.compilerOptions.json",
"files": [
"../common/tsconfig.json",
"../common/tsconfig.util.json",
"core.ts",
"sys.ts"
],
"exclude": "../common/exclude.json"
}
// File ../common/tsconfig.compilerOptions.json
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"sourceMap": true
}
}
// File ../common/exclude.json
{
"exclude": [
"node_modules",
"wwwroot"
]
}
// File ../common/tsconfig.util.json
{
"files": [
"foo.ts",
"bar.ts"
]
}
рдЖрдкрдХреЛ рддрд░реНрдХ рдорд┐рд▓рд╛: files
, compilerOptions
, exclude
... рдЕрдиреНрдп tsconfig.json рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдЕрдиреНрдп tsconfig рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреАрд╡рд░реНрдб рднрд╛рдЧ рдХреЛ "рд▓реЗ" рдЬрд╛рдПрдЧрд╛ .json рдлрд╝рд╛рдЗрд▓ => рдЖрд╕рд╛рди рдФрд░ рдорд╛рдкрдиреАрдпред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ tsconfig.json рдХреЛ рдХрдИ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдХреА рдЪрд░реНрдЪрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкрдврд╝рдирд╛, рдпрд╣ "рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛"/рдЧреЛрдЯреЛ рдкрд░рд┐рднрд╛рд╖рд╛ рдЪреАрдЬрд╝ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдмрдЧрд░реНрд╕ рд╕реЛрд░реНрд╕рдореИрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдм, рдпрджрд┐ tsc рдиреЗ sourceMap рдбреЗрдЯрд╛ рди рдХреЗрд╡рд▓ .js рдореЗрдВ рдмрд▓реНрдХрд┐ .d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рднреА рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рд╣реИ ...
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ tsconfig.json рдлрд╝рд╛рдЗрд▓ рдХреЗ рднреАрддрд░ рд╕реЗ рдмрд╛рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд▓рд╛рдн рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдореВрд▓ рдкреНрд░рдХрд╛рд░ рдХреА рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рдо рдХрд░реЗрдЧреАред рдпрджрд┐ рдЖрдкрдХреЛ рдмреБрджреНрдзрд┐рдорд╛рди рд╡реГрджреНрдзрд┐рд╢реАрд▓ рднрд╡рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рджреВрд╕рд░реА рдУрд░, рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИред рдХрдИ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ tsc рджреВрд╕рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╕рд┐рд░реНрдл рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХрджрдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред tsconfig.json рдореЗрдВ tsc рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрди рдирд┐рд░реНрднрд░рддрд╛ рдХрд┐рддрдиреА рдЕрдЬреАрдм рд╣реИ рд▓реЗрдХрд┐рди рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓? рджреЛрдмрд╛рд░рд╛, рдЯреАрдПрд╕рд╕реА рдХреЗ рд╕рд╛рде рд╕рд╛рдзрд╛рд░рдг рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдЧрд╛ред
рд╡реИрд╕реЗ рднреА, .d.ts рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ .js рдлрд╛рдЗрд▓реЛрдВ рдХреА рддрд░рд╣ рд╣реА рд╕реЛрд░реНрд╕ рдореИрдкрд┐рдВрдЧ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ?
рд╣рдо рдХреЗрд╡рд▓ рдиреЛрдб рдореЙрдбреНрдпреВрд▓ + рдПрдирдкреАрдПрдо рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рд╕рдорд╛рдзрд╛рди: рдиреЛрдб рдИрдПрд╕ 6 рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ / рдЯреНрд░реА-рд╢реЗрдХрд┐рдВрдЧ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ (#11103 рднреА рджреЗрдЦреЗрдВ)
рд╡рд┐рд╖рдп рд╕реЗ рд╣рдЯрдХрд░ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдпрдиреЛрдВ рдореЗрдВ, рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдХрдИ рдиреЛрдб рдкреИрдХреЗрдЬ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ "рдПрдирдкреАрдПрдо рд▓рд┐рдВрдХ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдХреЛ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдРрд╕рд╛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ, рд╡реЙрдЪ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ, рдЪреАрдЬреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред рдЖрдкрдХреА рдкрд╕рдВрдж рдХреЗ рд╕рдВрдкрд╛рджрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдФрд░ рднреА рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдо рддреМрд░ рдкрд░ рдореИрдВ рдмрд╕ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ, рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдбрд╛рд▓ рджреЗрддрд╛ рд╣реВрдВ, рдлрд┐рд░ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдорджрдж рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЪреБрдиреМрддреА рдХрд╛ рд╕рд╛рдордирд╛ рдХрдо рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдкреВрд░рд╛ рдЕрдиреБрднрд╡ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╖реНрдЯрдкреНрд░рдж рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ?
рдЗрд╕рд▓рд┐рдП, рдЬреЛ рдХреБрдЫ рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдЦрд┐рд░рдХрд╛рд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдкреВрд░реЗ рд╡рд┐рдХрд╛рд╕ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдмрд╕ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рджрд┐рди-рдкреНрд░рддрд┐рджрд┐рди рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛!
рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреГрддрд┐ рдХреЗ рдХрд╛рд░рдг, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрдИ ts рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдПрдХ рд╣реА js рдлрд╝рд╛рдЗрд▓ ( --outFile
) рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрдИ ts рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдпреЗ рдпрд╛ рддреЛ рдРрдк рдЬреИрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ (рд╡реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ) рдпрд╛ lib рдЬреИрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ (рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдХреЛрдб)ред рдЕрдХреНрд╕рд░ рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдХрдИ рдЯреАрдПрд╕-рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдРрдкреНрд╕ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореЗрд░реЗ рдХрд┐рд╕реА рднреА рд╕рд╛рдереА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рд╕рднреА рдЯреАрдПрд╕-рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХрд┐рд╕реА рднреА рд╕рдордп рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ
tsc -d -w
рдХрдорд╛рдВрдб рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд╛рдпрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ tsconfig рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрд╣рдорд╛рд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдРрдкреНрд╕ рд╕реЗ рд╕рдЦреНрддреА рд╕реЗ рдЕрд▓рдЧ рд░рдЦрд╛ рдЬрд╛ рд╕рдХреЗ, рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рдЫреЛрдЯрд╛ рдирд╣реАрдВ рдХрд┐ рд╣рдо рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдлреЗрдВрдХ рд╕рдХреЗрдВред рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдХрдореА рд╣реИред
рдЕрдЧрд░ dependencies
рджреЛрдиреЛрдВ рджреБрдирд┐рдпрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛрдЧрд╛; рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕рднреА ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЯреИрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЕрдкрдиреЗ tsconfig рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдЙрдЯрдкреБрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ? рд╣рдо tsconfig.json рдореЗрдВ рдРрд╕реА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЗрд╕реЗ рдЕрдм рднрд╡рд┐рд╖реНрдп рдХреЗ рдЦрдВрдб рдореЗрдВ "рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди" рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рд░реЛрдбрдореИрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ .tsconfig
рдлрд╝рд╛рдЗрд▓ рдПрдХ рдЕрдиреНрдп .tsconfig
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧреАред
рдХреНрдпрд╛ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ? рд╣рдо tsconfig.json рдореЗрдВ рдРрд╕реА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЖрдкрдХреЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд▓реНрдк, рдЧреНрд░рдВрдЯ, рдмреНрд░реЛрдХрд▓реА, рдПрдордПрд╕рдмрд┐рд▓реНрдб, рдмреЗрд╕рд▓, рдЖрджрд┐ рдЬреИрд╕реЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдП рдЧрдП рд╣реИрдВред
рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдПрдХ .d.ts рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
@mhegazy рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд▓рд░реНрди рдореЛрдиреЛрд░реЗрдкреЛ рдореЗрдВ рдХрдИ рдкреИрдХреЗрдЬ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреА package.json рдореЗрдВ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд╣реА рдирд┐рд░реНрднрд░рддрд╛ "types"
рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдЙрдирдХреЗ tsconfig.json
ред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ --outFile
рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╣ рдПрдХ рдкреБрд░рд╛рдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬреЛ рдЕрднреА рддрдХ ES рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдирд╣реАрдВ рдЧрдИ рд╣реИ), рдФрд░ "typings"
package.json
рдмрдВрдбрд▓ .d.ts
рдЧрдП рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБрдУрдВ
рд╣рдо рдЧрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдбрд▓рд┐рдВрдЧ/рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдореБрджреНрджреЗ рд╣реИрдВ:
.d.ts
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдпрд╣ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрд░реЛрдд рддрдХ рд▓реЗ рдЬрд╛рдПрдЧрд╛редlerna run build --sort
(рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ tsc
) рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдУрд╡рд░рд╣реЗрдб рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛, рдмрд╣реБрдд рдмрд╛рд░ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред .рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрдбрд╝реА рдирдЬрд░ рд░рдЦ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рднреА рдЙрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рджреВрд╕рд░реЛрдВ рдиреЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИред
рдПрдХрд╛рдзрд┐рдХ "рдкреНрд░реЛрдЬреЗрдХреНрдЯ", рдкреНрд░рддреНрдпреЗрдХ рдЗрд╕рдХреА tsconfig.json рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рдеред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ рдЬреИрд╕реЗ @mhegazy рдиреЗ рдмрддрд╛рдпрд╛: рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ .d.ts
рдлрд╝рд╛рдЗрд▓ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░реНрднрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдЖрдИрдбреАрдИ рд╕рдорд░реНрдерди рд╣реИ: рд╕рдВрджрд░реНрднреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рд╡реЗ рдХреЗрд╡рд▓ рдПрдХ tsconfig.json
рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдПрдХ рдмрджрд▓реА рд╣реБрдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдкреНрд░рднрд╛рд╡ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд╣реАрдВ рдлреИрд▓рддреЗ рдХреНрдпреЛрдВрдХрд┐ tsconfig.json
рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдХреА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдмрд┐рд▓реНрдб рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдЬреЛ рдЖрдИрдбреАрдИ рдореЗрдВ рдкрдХрдбрд╝реА рдЬрд╛ рд╕рдХрддреА рдереАрдВред
рд╣реЗ рднрдЧрд╡рд╛рди
рдПрдХ рдЕрджреНрдпрддрди рдкрд░рд┐рджреГрд╢реНрдп рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рдЗрд╕рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдШрдЯрдХ рд░реЗрдкреЛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ JSX рдореЙрдбреНрдпреВрд▓ (рдкрд░рдорд╛рдгреБ, рдЕрдгреБ рдФрд░ рдЬреАрд╡) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдХреЗ рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ UI рдШрдЯрдХреЛрдВ рдХреЛ рдЙрдкрдпреБрдХреНрдд рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдШрдЯрдХ рд░реЗрдкреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реЛ рдЬреЛ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ-рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ UI рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп UI рдШрдЯрдХ рд░реЗрдкреЛ рдореЗрдВ "рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдВ" рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЖрдЬ рд╣рдореЗрдВ рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрдВрдбрд▓ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реИред рдпрд╣ "рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд▓рдВрдмрд┐рдВрдЧ" рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдХреЗ рддрд╣рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде .NET рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдХрд╣рд╛рдиреА рд╣реИ)ред
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреИрдорд╛рдиреЗ рдХрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЯреАрдореЛрдВ рдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рд╣реИрдВ рдФрд░ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорд╛рдирдХреАрдХреГрдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдЬрдмрдХрд┐ рд╣рдордиреЗ рд╕рдордп рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдк-рдЪреЗрдХрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдмрд╣реБрдд рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, TS рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрднреА рднреА рдХрдард┐рди рд╕реАрдорд╛рдПрдБ рд╣реИрдВ,
рдФрд░ 32-рдмрд┐рдЯ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдЬреИрд╕реА рдмрд╛рдзрд╛рдПрдВ рдЬреЛ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдХреЛ "рдЕрд╕реАрдо рд░реВрдк рд╕реЗ" рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддреА рд╣реИрдВред
рд╕рд╣рдЬ рд░реВрдк рд╕реЗ, JSX рдХреА рдПрдХ рд▓рд╛рдЗрди рдХреЛ рдлреНрд░рдВрдЯ-рдПрдВрдб рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ 500,000 LOC рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрдкреВрд░реНрдг рдХреЛрд░ рдмрд┐рдЬрдиреЗрд╕ рд▓реЙрдЬрд┐рдХ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рд▓рдХреНрд╖реНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЫреЛрдЯреЗ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рджреЗрдирд╛ рд╣реИред рдПрдХ рд╕рдордп рдореЗрдВ рдХрд╛рдо рдХреЗ рдЫреЛрдЯреЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдХреЗ, рд╣рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рддреНрдордХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореБрдЦреНрдп рд╡рд┐рдХрд╛рд╕ рд▓реВрдк рдХреЛ рдордЬрдмреВрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдпрд╛ рд╕реНрдореГрддрд┐ рдЦрдкрдд рдореЗрдВ рднрд╛рд░реА рд╕реБрдзрд╛рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо "рдореБрдлреНрдд рд▓рдВрдЪ" рд╢реЗрд╖ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рд╡рд┐рднрд╛рдЬрди рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╛рдкрд╛рд░-рдмрдВрдж рд╣реИ рдЬреЛ рдХреБрдЫ рдЕрдЧреНрд░рд┐рдо рдХрд╛рд░реНрдп рдХреА рдХреАрдордд рдкрд░ рдЧрддрд┐ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд┐рд░реНрднрд░рддрд╛ рдЧреНрд░рд╛рдл рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд░реНрдХ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдХреБрдЫ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдлреАрдЪрд░реНрд╕ (рдЬреИрд╕реЗ рдХреНрд░реЙрд╕-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо) рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдЯреВрд▓рд┐рдВрдЧ рдХреЛ рдФрд░ рдмрдврд╝рд╛ рдирд╣реАрдВ рджреЗрддреЗред
рд╣рдо рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рдП рдЧрдП рдкреНрд░рдореБрдЦ рдмрд╛рдзрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░реЗрдВрдЧреЗ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЖрдХрд╛рд░, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдкреИрдЯрд░реНрди рдХреЗ рд▓рд┐рдП рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред
рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рдореБрдЦреНрдп рдкрд░рд┐рджреГрд╢реНрдп рд╣реИрдВред
рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕рд╛рдкреЗрдХреНрд╖ рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред рдпреЗ рдЖрдпрд╛рдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реИрдВред ../../core/utils/otherMod
рдЬреИрд╕реЗ рдкрде рдвреВрдВрдврдирд╛ рдЖрдо рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрди рд░реЗрдкреЛ рдореЗрдВ рдЪрд╛рдкрд▓реВрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЖрдорддреМрд░ рдкрд░ рдкрд╕рдВрдж рдХреА рдЬрд╛рддреА рд╣реИрдВред
рдпрд╣рд╛рдБ рдЦрд╛рди рдЕрдХрд╛рджрдореА рдХреЗ рдкрд░реНрд╕рд┐рдпрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
https://github.com/Khan/perseus/blob/master/src/components/graph.jsx рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд
const Util = require("../util.js");
const GraphUtils = require("../util/graph-utils.js");
const {interactiveSizes} = require("../styles/constants.js");
const SvgImage = require("../components/svg-image.jsx");
рдЬрдмрдХрд┐ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИред рдКрдкрд░ рдЦрд╛рди рдЕрдХрд╛рджрдореА рдХреЗ рдирдореВрдиреЗ рдореЗрдВ, рд╡рд╕реАрдпрдд рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреА рд╣реИ рдХрд┐ util
, styles
, рдФрд░ components
рд╢рд╛рдпрдж рдЙрдирдХрд╛ рдЕрдкрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рдХрд╛рдлреА рдЫреЛрдЯреА рд╣реЛрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдЗрдХрд╛рдИ рдореЗрдВ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдПрдХ рдореЛрдиреЛ-рд░реЗрдкреЛ рдореЗрдВ рдХрдИ рдореЙрдбреНрдпреВрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЧреИрд░-рд╕рд╛рдкреЗрдХреНрд╖ рдкрдереЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдк-рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЖрдпрд╛рдд (рдЬреИрд╕реЗ import * as C from 'core/thing
) рдЖрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ, рдкреНрд░рддреНрдпреЗрдХ рд░реВрдЯ рдореЙрдбреНрдпреВрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдирдкреАрдПрдо рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред
https://github.com/angular/angular/blob/master/packages/forms/src/validators.ts рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд
import {InjectionToken, ╔╡isObservable as isObservable, ╔╡isPromise as isPromise} from '@angular/core';
import {forkJoin} from 'rxjs/observable/forkJoin';
import {map} from 'rxjs/operator/map';
import {AbstractControl, FormControl} from './model';
рд╡рд┐рднрд╛рдЬрди рдХреА рдЗрдХрд╛рдИ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рдХрд╛ рдкреНрд░рдореБрдЦ рднрд╛рдЧ рд╣реЛред rxjs
, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдЙрдк-рднрд╛рдЧреЛрдВ ( observable
, operator
) рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рднреА рд╕реНрдХреЛрдкреНрдб рдкреИрдХреЗрдЬ (рдЬреИрд╕реЗ @angular/core
) рдХрд░рддрд╛ рд╣реИред
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдкрдиреА рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХрд▓ рдЖрдЙрдЯрдкреБрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдорд╛рдкреНтАНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрджрд░реНрдн рдирд┐рд░реНрджреЗрд╢, рдпрд╛ tsconfig.json рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреНрд░рдо, рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрддрд╛рддреНрдордХ рдЖрдЙрдЯрдкреБрдЯ рдХреНрд░рдо рдмрдирд╛рдПрдБред рдпрд╣ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдкреБрд░рд╛рдиреЗ рдХреЛрдбрдмреЗрд╕ (рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╣рд┐рдд) рдХреЗ рдмреАрдЪ рдкреНрд░рдЪрд▓рд┐рдд рд╣реИред
https://github.com/Microsoft/TypeScript/blob/master/src/compiler/tsc.ts
/// <reference path="program.ts"/>
/// <reference path="watch.ts"/>
/// <reference path="commandLineParser.ts"/>
https://github.com/Microsoft/TypeScript/blob/master/src/harness/unittests/customTransforms.ts
/// <reference path="..\..\compiler\emitter.ts" />
/// <reference path="..\harness.ts" />
рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рдкреНрд░рддреНрдпреЗрдХ outFile
рдХреЛ рдПрдХ рдЕрд▓рдЧ script
рдЯреИрдЧ (рдпрд╛ рд╕рдордХрдХреНрд╖) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп (рдЬреИрд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдпрдВ) рдХреЛ рдкреВрд░реНрд╡ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ .
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рд╕реЗ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рд▓реЛрдХрди:
skipLibCheck
рддрд╣рдд, рдЙрдирдХреА рдЯрд╛рдЗрдкрдЪреЗрдХрд┐рдВрдЧ рдФрд░ рдореЗрдореЛрд░реА рд▓рд╛рдЧрдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рдЧрднрдЧ "рдореБрдХреНрдд" рд╣реИрдВрдЗрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рд░рдЦрддреЗ рд╣реБрдП, рдпрджрд┐ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдХреЗ рдХреЗрд╡рд▓ рдПрдХ 50,000 LOC рдЦрдВрдб рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛, рддреЛ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рд▓рдЧрднрдЧ рдХреЛрдИ "рдзреАрдореА" рдмрд╛рддрдЪреАрдд рдирд╣реАрдВ рд╣реЛрдЧреА, рдФрд░ рд╣рдо рд▓рдЧрднрдЧ рдХрднреА рднреА рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
рд╣рдо рдПрдХ рдирдИ рдЕрд╡рдзрд╛рд░рдгрд╛, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрдн рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ , рдЬреЛ рджреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдХрд▓рди рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдирдИ рддрд░рд╣ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрд╢реНрд░рд┐рдд рдЗрдХрд╛рдИ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ; рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдмрд╕ рдЗрд╕рдХреЗ .d.ts
рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдПрдХ рдирд┐рдпрддрд╛рддреНрдордХ рд╕реНрдерд╛рди рд╕реЗ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рдирдпрд╛ references
рд╡рд┐рдХрд▓реНрдк (рдХрд╛рд░реНрдпрд╕реВрдЪреА:! Bikeshed) рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ tsconfig.json
:
{
"extends": "../tsproject.json",
"compilerOptions": {
"outDir": "../bin",
"references": [
{ "path": "../otherProject" }
]
}
}
references
рд╕рд░рдгреА рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреА рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ references
рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ path
рдПрдХ tsconfig.json
рдлрд╝рд╛рдЗрд▓ рдпрд╛ tsconfig.json
рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рд╡рд╕реНрддреБ рдореЗрдВ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрдн рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ:
rootDir
рдХреА рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ .ts
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░реЗрдЧрд╛, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рдЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ outDir
.d.ts
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИReferenced project "../otherProject" is not built
рдмрдЬрд╛рдп рдПрдХ рд╕рд╛рдзрд╛рд░рдг "рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдорд┐рд▓реА"рдмрд┐рд▓реНрдб рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рд╛рд░реНрдердХ рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рд╡рд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн рджреЗрдЦрддрд╛ рд╣реИред
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рддреЗрдВ рд╕рддреНрдп рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:
tsconfig.json
рдХреЛ рдбрд┐рд╕реНрдХ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПрдЗрди рд╡рд╛рджреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
declaration
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ true
рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИrootDir
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "."
( tsconfig.json
рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛), рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реЗрдЯ рд╕реЗ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдпfiles
рд╕рд░рдгреА рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рд╕рднреА рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗnode_modules/@types
) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИreferences
рд╕рд░рдгреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (рдЬреЛ рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИ)ред"declaration": true
?рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн рдЕрдкрдиреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓реЛрдВ (.ts) рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ (.d.ts) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд╛рдг рдЧрддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рддреЛ, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рднреА рд╕рдВрджрд░реНрднрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ declaration
рд╕реЗрдЯрд┐рдВрдЧ рдЪрд╛рд▓реВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдпрд╣ "project": true
рджреНрд╡рд╛рд░рд╛ рдирд┐рд╣рд┐рдд рд╣реИ
rootDir
рдХреНрдпреЛрдВ рдмрджрд▓реЗрдВ?rootDir
рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдореИрдк рдХрд░рддреА рд╣реИрдВред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдВрдкреВрд░реНрдг рдЧреНрд░рд╛рдлрд╝ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕реЗрдЯ ["src/a.ts", "src/b.ts"]
рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ ["a.js", "b.js"]
,
рд▓реЗрдХрд┐рди рдЗрдирдкреБрдЯ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕реЗрдЯ ["src/a.ts", "b.ts"]
рдЖрдЙрдЯрдкреБрдЯ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ ["src/a.js", "b.js"]
ред
рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реЗрдЯ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдЙрд╕рдХреЗ рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ,
рдЬреЛ рдПрдХ рдмрдбрд╝реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдорд╣рдВрдЧрд╛ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдЖрдЬ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм references
рд╕рд░рдгреА рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдкрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреНрд░рд╛рдл рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреА рд╣реИрдВред (TODO: рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рджреБрдГрд╕реНрд╡рдкреНрди рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ?) рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬреЛ рдХрд┐ рдмрдирдиреЗ рд╡рд╛рд▓реЗ рд╡реГрддреНрддрд╛рдХрд╛рд░ рдкрде рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ:
TS6187: Project references may not form a circular graph. Cycle detected:
C:/github/project-references-demo/core/tsconfig.json ->
C:/github/project-references-demo/zoo/tsconfig.json ->
C:/github/project-references-demo/animals/tsconfig.json ->
C:/github/project-references-demo/core/tsconfig.json
tsbuild
рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред .ts рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tsc
рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рдкреЗрд╢ рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╣реБрдд рдХрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ 50,000 LOC "рддреЗрдЬ" рд╕реАрдорд╛ рдХреЛ рдкрд╛рд░ рдХрд░рддреА рд╣реИрдВред
"рдЖрдк foo
рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ bar
рдЕрднреА рддрдХ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ" рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рджреГрд╢реНрдп рдПрдХ рд╕реНрдкрд╖реНрдЯ "рдЧреЛ рдлрд╝реЗрдЪ рджреИрдЯ" рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕рдХрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд▓реНрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░ рдорд╛рдирд╕рд┐рдХ рдмреЛрдЭ рдХреА рддреБрд▓рдирд╛ рдореЗрдВред
рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ gulp
, webpack
, рдЖрджрд┐, (рдпрд╛ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд TS рдкреНрд▓рдЧрдЗрдиреНрд╕) рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрднреЛрдВ рдХреА рд╕рдордЭ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЬрд╛рдБрдЪ рд╕рд╣рд┐рдд рдЗрди рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓реЗрдВрдЧреЗред
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ , рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд┐рд▓реНрдб рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЛ рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЙрдкрдХрд░рдг рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╕рд╣реА рддрд░реАрдХреЗ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрднрд╛рдЧ
tsconfig.json
рдлрд╝рд╛рдЗрд▓реЗрдВ рдЫреЛрдбрд╝реЗрдВ рдФрд░ рдлрд┐рд░ рдмрд┐рд▓реНрдб рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВbaseUrl
рдкрд░ рдкреНрд░рднрд╛рд╡dtsEmitOnly
рд╕реЗрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдЬреЗрдПрд╕ рдХреЛ рд╡реЗрдмрдкреИрдХ/рдмреЗрдмреЗрд▓/рд░реЛрд▓рдЕрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдЗрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВ?references
+ noEmit
рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИрд╢рд╛рдирджрд╛рд░!
рд▓рд░реНрдирд╛ рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ
- рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ (рдПрди = 1) рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рд╣реИ
рдХреНрдпрд╛ "рдпрд╣" рдкреНрд░рд╕реНрддрд╛рд╡ рдпрд╛ рд╕рдВрджрд░реНрдн рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ? рдЬрдмрдХрд┐ рдЖрдк рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдореЗрд░реА рдЯреАрдо рдХрд░рддреА рд╣реИ), рдпрд╣ рдмрд╣реБрдд рд╣реА рдХрдо рд╣реИ рдФрд░ рдпрджрд┐ рдЯреАрдПрд╕ (рдпрд╛ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдЙрдкрдХрд░рдг) рд╕реНрд╡рдпрдВ рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛрдЧрд╛ред
TODO рдЕрдиреБрднрд╛рдЧ рд╕рдВрдкреВрд░реНрдг рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП TODO рд╣реИ
рдЕрдЪреНрдЫрд╛!
рд╕рдВрджрд░реНрднрд┐рдд рдХреА рдЧрдИ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрд╡рдпрдВ рдПрдХ рд╕рдВрджрд░реНрдн рд╕рд░рдгреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (рдЬреЛ рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИ)ред
рдХреНрдпрд╛ рдпреЗ рд╡рд╛рдХрдИ рдЬрд░реВрд░реА рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдРрд╕реЗ рдкреИрдХреЗрдЬ рдореЗрдВ .d.ts
рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдВ?
(рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, tsconfig.json
рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?)
рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛: рдПрдХ (рдЬреИрд╕реЗ рддреГрддреАрдп-рдкрдХреНрд╖) рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ outDir
рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП .ts
, .js
рдФрд░ .d.ts
рдмрдЧрд▓ рдореЗрдВ рд╣реЛрдЧрд╛ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ, рдФрд░ рдЯреАрдПрд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ .ts
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп .d.ts
ред
рдореЗрд░реЗ рд▓рд┐рдП outDir
рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг import "package/subthing"
-рд╕реНрдЯрд╛рдЗрд▓ рдЖрдпрд╛рдд рдХреЛ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдпрдерд╛ import "package/dist/subthing"
рд╕рд╛рде outDir: "dist"
ред
рдФрд░ рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ, рдпрд╛ рдЗрд╕рдХреЗ рд╕реНрд░реЛрдд рднрдВрдбрд╛рд░ рдХрд╛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП npm link
)ред
(рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдпрджрд┐ package.json
рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ main
, рд▓реЗрдХрд┐рди рдЕрдлрд╕реЛрд╕...)
рдХреНрдпрд╛ рд╣рдореЗрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП dtsEmitOnly рд╕реЗрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ JS рдХреЛ рд╡реЗрдмрдкреИрдХ/рдмреЗрдмреЗрд▓/рд░реЛрд▓рдЕрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдЗрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдмрд┐рд▓реНрдХреБрд▓! рдпрд╣ рдЗрд╕ рд╕рдордп рдПрдХ рдмрдбрд╝рд╛ рд▓рд╛рдкрддрд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдк outFile
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдПрдХрд▓ d.ts рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдореЙрдбреНрдпреВрд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдмрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ ( export as namespace MyLib
) рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ d.ts рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рд╣рд░реА рдЙрдкрдХрд░рдг рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕реЗ рдПрдорд┐рдЯрд░ рдФрд░ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдХреНрдпрд╛ рдпреЗ рд╡рд╛рдХрдИ рдЬрд░реВрд░реА рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдРрд╕реЗ рдкреИрдХреЗрдЬ рдореЗрдВ .d.ts рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдВ?
рд╣рдореЗрдВ рд▓рдХреНрд╖реНрдп tsconfig рдореЗрдВ рдХреБрдЫ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд╣рд╛рдБ рд╣реИред рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ "рдЖрдкрдХреЛ рдПрдХ рд╕реНрдкрд╖реНрдЯ rootDir
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛" рдЬреЛ рдХрд┐ рдХрд╛рдлреА рдмреЛрдЭрд┐рд▓ рдерд╛ (рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ tsconfig рдореЗрдВ "rootDir": "."
рд▓рд┐рдЦрдирд╛ рдерд╛)ред рдЪреВрдВрдХрд┐ рд╣рдо рдЗрд╕ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рдлрд╝реНрд▓рд┐рдк рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдВрджрд░реНрдн рд╕рд░рдгреА рд╣реИ рддреЛ рдЖрдкрдХреЛ "рдкреНрд░реЛрдЬреЗрдХреНрдЯ" рд╡реНрдпрд╡рд╣рд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╡рд╣ рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдмрдЬрд╛рдп рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдЭрдВрдбреЗ рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдирд┐рдХрдЯрддрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛ рдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд╣рдордиреЗ рдЫреЛрдЯреА рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдЙрдк-рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ tsconfig.json рд╣реИ рдФрд░ рдЧрд▓реНрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдбреА.рдЯреАрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИрдВред
рдПрдХ рдЖрджрд░реНрд╢ рджреБрдирд┐рдпрд╛ рдореЗрдВ, рд╕рдВрджрд░реНрднрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЕрд░реНрдерд╛рддред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрджрд░реНрднрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ "рдмрд┐рд▓реНрдб" рдХрд░рддрд╛ рд╣реИ рдФрд░ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ "d.ts" рдХреЗ рдмрд░рд╛рдмрд░ рд░рдЦрддрд╛ рд╣реИред рдпрд╣ "рд╕реНрд░реЛрдд" рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ "рдЖрд╢реНрд░рд┐рдд" рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рд╣рдореЗрдВ рд▓рдХреНрд╖реНрдп tsconfig рдореЗрдВ рдХреБрдЫ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд╣рд╛рдБ рд╣реИред
рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд╕рдЪ рд╣реЛрддрд╛ рд╣реИ рдЬрдм outDir
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣реИ рдирд╛?
рдЬреИрд╕реЗ: рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ tsconfig рд╣реИ рдХрд┐:
outDir
рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ declaration: true
), рддреЛ рд╣рдореЗрдВ rootDir
рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рди рд╣реА references
outDir
, рддреЛ рдЖрдкрдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП references
рдФрд░/рдпрд╛ rootDir
(рдФрд░ declaration: true
) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАрдкреВрдЫрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рднреА рдЯреАрдПрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП 'рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЛрдб' рдХреЛ рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдХреЗ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╛рдиреА рдпрд╣ рдореЗрд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╣реИред
рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ .d.ts рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рддреЗ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рдвреВрдВрдв рд░рд╣рд╛ рд╣реИ (рдпрд╛рдиреА рдХреЛрдИ .ts рдлрд╝рд╛рдЗрд▓реЗрдВ рдпрд╛ tsconfig рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛)ред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕рдХреЗ рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг (рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ .d.ts рдлрд╛рдЗрд▓реЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ) рдХреЛ 'рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд' рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдорд╛рдорд▓рд╛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, NPM рдкреИрдХреЗрдЬ MyApp рдФрд░ SomeLib рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
SomeLib рдореЗрдВ tsconfig: declaration: true
ред
рдЬреИрд╕реЗ:
package.json
tsconfig.json
index.ts
sub.ts
рд╕рдВрдХрд▓рд┐рдд, рдпрд╣ рдмрди рдЬрд╛рддрд╛ рд╣реИ:
package.json
tsconfig.json
index.ts
index.d.ts
index.js
sub.ts
sub.d.ts
sub.js
рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИ рдЙрджрд╛
// somewhere in MyApp
import something from "SomeLib/sub";
рдкреНрд░рдХрд╛рд╢рд┐рдд рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рдореЗрдВ, рдореБрдЭреЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдореЗрд╢рд╛ .ts рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЯреАрдПрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ MyApp SomeLib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
рддреЛ, рдПрдирдкреАрдПрдо рдкрд░, рдпрд╣ рдмрди рдЬрд╛рддрд╛ рд╣реИ:
package.json
index.d.ts
index.js
sub.d.ts
sub.js
рдЕрдм, рдЕрдЧрд░ рдореИрдВ MyApp рдХреЗ tsconfig рдореЗрдВ references: ["SomeLib"]
рдбрд╛рд▓рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ NPM рд╕рдВрд╕реНрдХрд░рдг рдФрд░ SomeLib рдХреЗ рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдг рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП 'рдЬреИрд╕рд╛ рд╣реИ' рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ , рдпрд╛рдиреА рдпрд╣ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬреИрд╕реЗ tsconfig рдЧреБрдо рд╣реЛрдирд╛, рдЬрдм рддрдХ рдпрд╣ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ sub.d.ts
рдкрд╛рддрд╛ рд╣реИред
рд╕рдВрдмрдВрдзрд┐рдд, рд▓реЗрдХрд┐рди рдЕрд▓рдЧ рдкреНрд░рд╢реНрди:
рдореБрдЭреЗ рдЕрдм рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ, рдХрд┐ рдпрджрд┐ SomeLib
рдХреЗ рд▓реЗрдЦрдХ рдЕрдкрдиреЗ tsconfig рдореЗрдВ references
рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ .ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде NPM рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯреАрдПрд╕ рдЕрднреА рднреА рдЗрдиреНрд╣реЗрдВ рд╣рдореЗрд╢рд╛ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ рдЬрдм рдХреЛрдИ рдЖрд╢реНрд░рд┐рдд рдкреИрдХреЗрдЬ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ references: ["SomeLib"]
рдХреЛ рдЙрдирдХреЗ tsconfig рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓рддрд╛ рд╣реИред
рдпрд╛ рдпрд╣ рднреА рдЗрд░рд╛рджрд╛ рд╣реИ рдХрд┐ MyLib рдореЗрдВ references
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ 'рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реАрдорд╛' рднреА рдкреЗрд╢ рдХрд░реЗрдЧрд╛ рдЬрдм рдЗрд╕реЗ рдХреЗрд╡рд▓ import
'рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдпрд╛рдиреА references
рдЗрд╕реЗ рдирд╣реАрдВ рдХрд░рдирд╛)?
рдЖрдИрдЖрдИрдЖрд░рд╕реА, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рдерд╛ рдХрд┐ рдпрджрд┐ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП node_modules
рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд┐рдд рдерд╛, рддреЛ .d.ts
рдлрд╛рдЗрд▓реЛрдВ рдХреЛ .ts
рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрдорд╛рдиреА (" node_modules
рдорд╛рдзреНрдпрдо рд╕реЗ") рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрд╣реБрдд рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдерд╛ред рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕реНрдкрд╖реНрдЯ 'рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реАрдорд╛' рд╣реЛрдиреЗ рд╕реЗ рдпрд╣ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП projectRoot: true
рдХреЗ рдмрдЬрд╛рдп рдпрд╛ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ references
)?
рд▓рд░реНрди рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдореЗрд░реА рдкреВрд░реА рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЕрд╡рд░реЛрд╣реА "../xx"
рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдЕрдм рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп
рдПрдХ "рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░" tsconfig.json рдХреА рдирдИ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдпрджрд┐ рдЖрдк рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреИрдХреЗрдЬ рдХреЛ "рдЧрд┐рдЯ рдХреНрд▓реЛрди" рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ (рдЬреИрд╕реЗ npm рдпрд╛ рдпрд╛рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛) рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рдЕрд▓рдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдХрд▓рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдЙрдирдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд▓рд╛рдПрдЧреАред рдпрджрд┐ рдЖрдк рдкреВрд░реЗ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЛ рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрдкрдХреЛ рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рджреЗрдЧрд╛ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ tsconfig.json
рднреА рдпрд╛рд░реНрди рдХреЗ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛрддрд╛ рд╣реИ package.json
https://yarnpkg.com/lang/en/docs/workspaces/
рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреНрд░рдорд╛рдг рджрд┐рдпрд╛ рд╣реИ
https://github.com/spion/typescript-workspace-plugin
рдмрд╕ рдЕрдкрдиреЗ рд╕рднреА tsconfig.json
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд┐рдкреЛрдЬ рдХреА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкреНрд▓рдЧрдЗрди рдЬреЛрдбрд╝реЗрдВ
{
"plugins": [{"name": "typescript-workspace-plugin"}]
}
рдлрд┐рд░ рдКрдкрд░реА рд╕реНрддрд░ package.json рдкрд░ рдпрд╛рд░реНрди рдХреА "рдХрд╛рд░реНрдпрд╕реНрдерд╛рди" рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд╕рд╛рде, "рдХрд╛рд░реНрдпрд╕реНрдерд╛рди-рд╕реНрд░реЛрдд" рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЬреЛрдбрд╝реЗрдВ:
{
"workspaces": ["packages/*"],
"workspace-sources": {
"*": ["packages/*/src"]
}
}
рдлрд╝реАрд▓реНрдб tsconfig.json рдореЗрдВ "рдкрде" рдлрд╝реАрд▓реНрдб рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдкреИрдХреЗрдЬ рд╕реНрд░реЛрддреЛрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред рдЙрдЪрд┐рдд "рдкрд░рд┐рднрд╛рд╖рд╛ / рдкреНрд░рдХрд╛рд░ рдкрд░ рдЬрд╛рдПрдВ" рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рд╕рдорд╛рди рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд╕рдЪ рд╣реИ рдЬрдм outDir рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣реИ рдирд╛?
рд╕рд╣реАред рд╣рдордиреЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдерд╛ рдХрд┐ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд╛рд▓реЗ рд▓рдЧрднрдЧ рд╕рднреА рд▓реЛрдЧ outDir
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдЬреЛ рдирд╣реАрдВ рд╣реИрдВ
рдЕрдм, рдЕрдЧрд░ рдореИрдВ MyApp рдХреЗ tsconfig рдореЗрдВ рд╕рдВрджрд░реНрдн: ["SomeLib"] рдбрд╛рд▓рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ NPM рд╕рдВрд╕реНрдХрд░рдг рдФрд░ SomeLib рдХреЗ рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдг рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП 'рдЬреИрд╕рд╛ рд╣реИ' рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдмрдбрд╝реЗ рдкреНрд░рд╢рдВрд╕рдХ, рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИред рдореБрдЭреЗ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдпрд╣рд╛рдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдпрд╛ рддреЛ рдП) рджреЛрдиреЛрдВ .ts рдФрд░ tsconfig рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЯреАрдПрд╕ рдЙрдиреНрд╣реЗрдВ рдвреВрдВрдврддрд╛ рд╣реИ, рдпрд╛ рдмреА) рди рддреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ рдХреЗрд╡рд▓ .d.ts рдлрд╛рдЗрд▓реЗрдВ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реЛрдВред (рдП) рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕рд╣реА рдмрд╛рдд рд╣реЛрдЧреА рдФрд░ (рдмреА) рдореЗрдВ рд╣рдо рдЧрд▓рдд рдЬрдЧрд╣реЛрдВ рдкрд░ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗред
рдпрд╛ рдЗрд░рд╛рджрд╛ рдпрд╣ рднреА рд╣реИ рдХрд┐ MyLib рдореЗрдВ рд╕рдВрджрд░реНрдн рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп 'рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реАрдорд╛' рднреА рдкреЗрд╢ рдХрд░реЗрдВрдЧреЗ (рдпрд╛рдиреА рдЗрд╕реЗ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВ)?
@mhegazy рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХреА рдФрд░ рд╣рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдореЙрдбрд▓ рд╣реИ: references
рд╕рд░рдгреА рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдмрд╛рд╣рд░ .ts
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрднреА рднреА "рджреЗрдЦрддрд╛" exclude
d рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдЕрдВрддрд░реНрдЧрддред рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдХреЗрд▓реЗ рд▓рд░реНрди рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ("рдХрд╛рд░реНрдп" рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ "рдореЙрдбреНрдпреВрд▓ рд╕рдВрджрд░реНрдн рд╣рдореЗрд╢рд╛ .d.ts рдХреЗ рд▓рд┐рдП рд╣рд▓ рд╣реЛрддреЗ рд╣реИрдВ") рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдиреНрдпред
рдореБрдЭреЗ "рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░" рдореЙрдбрд▓ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд╕рдЪ рд╣реИ рдЬрдм outDir рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣реИ рдирд╛?
рд╕рд╣реАред рд╣рдордиреЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдерд╛ рдХрд┐ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд╛рд▓реЗ рд▓рдЧрднрдЧ рд╕рднреА рд▓реЛрдЧ рдЖрдЙрдЯрдбрд┐рдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдЬреЛ рдирд╣реАрдВ рд╣реИрдВ
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдорд╛рдзрд╛рди рдореЗрдВ 67 рдЯреАрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдмрд┐рдирд╛ outdir
рд╕рдВрдХрд▓рд┐рдд рд╣реИрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ (рдФрд░ рдмрджрд╕реВрд░рдд рдФрд░ рдЕрдиреНрдп рдкреЛрд╕реНрдЯрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдмрд┐рд▓реНрдб рдЧреНрд░рдВрдЯрдЯрд╛рд╕реНрдХ рд╣реИрдВред
рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдРрд╕рд╛ tsconfig.json рд╣реЛрддрд╛ рд╣реИ
"include": [
"../baseProj/Lib/jquery.d.ts",
"../baseProj/baseProj.d.ts"
]
рдореБрдЭреЗ рд╕рдВрджрд░реНрдн рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛, рдФрд░ рд╕рд╣реА - AFAICT lerna рдФрд░ рдпрд╛рд░реНрди рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:
skipLibCheck
рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ рдХреЛ рдирдЧрдгреНрдп рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рд╣реИредрд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреЛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЬреЛ рдкреНрд▓рдЧрдЗрди рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ, рд╡рд╣ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдЬрдм рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдореБрдЭреЗ .d.ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП "рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдВ" рдФрд░ "рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдВ"ред рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрдЭреЗ рдореВрд▓ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрдерд╛рди рдкрд░ рднреЗрдЬреЗ, рддрд╛рдХрд┐ рд╢рд╛рдпрдж рдореИрдВ рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХреВрдВред рдЕрдиреНрдпрдерд╛, рдореИрдВ рдХреЗрд╡рд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд▓реЛрдб рдХрд░реВрдВрдЧрд╛ рдФрд░ рд▓рд░реНрди/рдпрд╛рд░реНрди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рд╕рд┐рдореНрд▓рд┐рдВрдХ рдмрд╕ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡рд╣реАред рд▓рд░реНрди рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЕрдкрдиреЗ рдирд┐рд░реНрднрд░рддрд╛ рдЧреНрд░рд╛рдл рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рднрд╛рд╡ рд╕рдорд╛рди рд╣реИред рдЬрдм рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ tsc
рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдорд╛рд░реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЧрдгрдирд╛ рдПрдХ рдмрдбрд╝реЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рд╣рдо рдПрдХ рдРрд╕реЗ рдореЙрдбрд▓ рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВ рдЬрд╣рд╛рдБ tsconfig.json рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдЙрддреНрдкрдиреНрди рдЖрдЙрдЯрдкреБрдЯ рд╣реИ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ VS рдХреЛрдб рдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП)ред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреЛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЬреЛ рдкреНрд▓рдЧрдЗрди рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ, рд╡рд╣ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдЬрдм рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдореБрдЭреЗ .d.ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП "рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдВ" рдФрд░ "рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдВ"ред рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрдЭреЗ рдореВрд▓ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрдерд╛рди рдкрд░ рднреЗрдЬреЗ, рддрд╛рдХрд┐ рд╢рд╛рдпрдж рдореИрдВ рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХреВрдВред
+1 рдпрд╣ рдХрдорд╛рд▓ рд╣реЛрдЧрд╛ред
рдЕрдЧрд░ рд╣рдо рдмреЗрд╣рддрд░ рдмрд╣реБ-рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдкрдирд╛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдЕрдиреБрд░реЛрдз рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗрд╡рд╛ рд╣реЛрдЧрд╛, рдХреБрдЫ рдРрд╕рд╛ рдЬреИрд╕реЗ рд╡реАрдПрд╕ рдХреЛрдб рдЗрдВрдЯреЗрд▓рд┐рд╕реЗрдиреНрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд░рд╢ рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрдВрдЬрди рдХреЛ 100 рдмрд╛рд░ рд╕реНрдкрд┐рди рдХрд┐рдП рдмрд┐рдирд╛ tsc
100 рдмрд╛рд░ рдЖрд╣реНрд╡рд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддреЛ рд╣рдорд╛рд░рд╛ рдирд┐рд░реНрдорд╛рдг рдХрд╛рдлреА рддреЗрдЬ рд╣реЛрдЧрд╛ред рдХрдВрдкрд╛рдЗрд▓рд░ рд╣рдорд╛рд░реЗ рд╕рдмрд╕реЗ рдорд╣рдВрдЧреЗ рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдкреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдПрдХ рдореЛрдиреЛрд░реЗрдкреЛ рдореЗрдВ, рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рдордп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИред
@iclanton @nickpape-msft @qz2017
рдЬреА рдмреЛрд▓рд┐рдпреЗ!
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрдЧрд╛ рдпрджрд┐
'рдЧреЛ рдЯреВ рдбреЗрдлрд┐рдирд┐рд╢рди' d.ts рдлрд╛рдЗрд▓ рдХреЗ рдмрдЬрд╛рдп рд╕реЛрд░реНрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рдЧрдпрд╛ рдФрд░
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реЗрдлрд░реЗрдВрд╕ рдЯреНрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬреЗ рдЧрдП 'рд╕рднреА рд╕рдВрджрд░реНрдн рдЦреЛрдЬреЗрдВ'ред
рд╕рдВрднрд╡рддрдГ рдпрд╣ 'рд╡реИрд╢реНрд╡рд┐рдХ рдирд╛рдо рдмрджрд▓реЗрдВ' рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЛ рднреА рдЕрдирд▓реЙрдХ рдХрд░реЗрдЧрд╛ред
рдЧреБрд░реБ, 9 рдирд╡рдВрдмрд░, 2017 рдХреЛ рд░рд╛рдд 9:30 рдмрдЬреЗ рд╕рд▓реНрд╡рд╛рдЯреЛрд░ рдкреНрд░реАрд╡рд┐рдЯреА рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:
рдЬреА рдмреЛрд▓рд┐рдпреЗ!
-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/Microsoft/TypeScript/issues/3469#issuecomment-343356868 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AANX6d19Zz7TCd_GsP7Kzb-9XJAisG6Hks5s07VXgaJpZM4E-oPT
.
@mhegazy рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХреА рдФрд░ рд╣рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдореЙрдбрд▓ рд╣реИ: рд╕рдВрджрд░реНрдн рд╕рд░рдгреА рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдмрд╛рд╣рд░ .ts рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрднреА рднреА "рджреЗрдЦрддрд╛" рдирд╣реАрдВ рд╣реИ - рдЗрд╕рдореЗрдВ рдмрд╣рд┐рд╖реНрдХреГрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рддрд╣рдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЕрдЪреНрдЫрд╛, рдФрд░ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХрд┐рд╕реА рдХреЛ рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрджрд░реНрдн рдХреНрдпреЛрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛?
рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдзреНрд╡рдЬ рд╣реЛрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ (рдЬреИрд╕реЗ projectRoot: true
)ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрдм references: ["foo"]
рдФрд░ рдХреЗрд╡рд▓ references: []
рдмреАрдЪ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реЛрдЧрд╛?
рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рдореИрдВ import "foo"
рдпрд╛ import "bar"
, рддреЛ рджреЛрдиреЛрдВ рдХрд┐рд╕реА рднреА .ts
рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрдВрдЧреЗред
рддреЛ, рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рд╕реНрддрд╛рд╡ рдмрди рдЬрд╛рддрд╛ рд╣реИ:
рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП tsconfig.json ( projectRoot
рдкрд░ TODO рдмрд╛рдЗрдХрд╢реЗрдб):
{
"extends": "../tsproject.json",
"compilerOptions": {
"projectRoot": true
}
}
рдЬрдм tsc
рддрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдмрд╛рд╣рд░ рдХреБрдЫ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдмрд╣рд┐рд╖реНрдХреГрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рддрд╣рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕рд╣рд┐рдд), рдпрд╣ рдХреЗрд╡рд▓ .d.ts
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦреЗрдЧрд╛ (рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдХреЗрд╡рд▓ _prefer_ .d.ts
рдлрд╝рд╛рдЗрд▓реЗрдВ, рдФрд░ tsconfig
рдФрд░/рдпрд╛ .ts
рдпрджрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣реА рджреЗрдЦрддрд╛ рд╣реИ)ред
рдпрд╣ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рддреЗрдЬреА рд╕реЗ рдФрд░ рд╕рд░рд▓ рд╕рдВрдХрд▓реНрдк рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдореЛрдиреЛрд░реЗрдкреЛ рд╕рдВрджрд░реНрднреЛрдВ (рдпрд╛рдиреА import "../foo"
) рдФрд░ рдкреИрдХреЗрдЬ-рдЖрдзрд╛рд░рд┐рдд рд╕рдВрджрд░реНрднреЛрдВ (рдпрд╛рдиреА import "foo"
) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рдФрд░ рдЙрдирдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдФрд░ рдпрд╣ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди tsconfig.json
рдорд╢реАрдирд░реА рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЕрдЧрд░ рдЗрд╕реЗ .d.ts
рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рддреЛ рдпрд╣ рдХрдо рд╕рд╣рд╛рдпрдХ рд╣реЛрдЧрд╛ред
рдпрд╣ рд╕рдЪ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдореИрдВ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ :)
рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рднреА рдмрддрд╛рддреЗ рд╣реИрдВ, рдпрд╣ рдЕрднреА рднреА рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ 'IntelliSense' .ts рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд░рд╣реЗред
рддреЛ, рдЕрдЧрд░, 'рд╕рдВрджрд░реНрдн рд▓рдЧрддрд╛ рд╣реИ' рдЖрджрд┐ рдХреЗ рд▓рд┐рдП 'рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдВ,' рдЕрдиреБрд░реЛрдз рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдХреБрдЫ рд░рд┐рд╡рд░реНрд╕ рдорд╛рдирдЪрд┐рддреНрд░рдг рдЗрд╕реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП .ts
рд╕реЗ рдлрд╝рд╛рдЗрд▓ .d.ts
рдлрд╝рд╛рдЗрд▓ рдпрд╣ рдЗрддрдирд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рджреВрд░ред
рдпрд╣ рдорд╛рдирдЪрд┐рддреНрд░рдг рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
//# sourceURL = ../src/foo.ts
рдореЗрдВ .d.ts
.d.ts
рд╕реЗ рдореВрд▓ .ts
рд╡рд╛рдкрд╕ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.js
рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рд▓ рдХрд░рдирд╛, рдФрд░ `.ts . рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛рдпрд╣ .d.ts
рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд╡рд┐рд╖рдп рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ рдЬрдм рдЙрд╕ .ts
рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЬ рдпрд╣ рдорд╛рдорд▓рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ рдХрд┐ .js
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░реВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рднреАред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛ рдХрд┐ рдпрджрд┐ рд╡рд╣ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рднреА рдХреБрдЫ рд╣реЛрдЧрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирд╛рдВрддрд░ tsc
рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, tsbuild
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, compileOnSave
-рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЖрдИрдбреАрдИ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
@pgonzal @michaelaird https://github.com/spion/typescript-workspace-plugin рдХреЗрд╡рд▓ рдпрд╣реА рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдмрд╣реБ-tsconfig рдпрд╛рд░реНрди/рд▓реЗрд░реНрдирд╛/рдЖрджрд┐ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрджрд░реНрдн рдвреВрдВрдврддрд╛ рд╣реИред
рджрд┐рд▓рдЪрд╕реНрдк... рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рд░рд╢ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рджреЗрдЦ рд▓реЗрдВрдЧреЗред
рдПрдлрд╡рд╛рдИрдЖрдИ рдЗрд╕ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдордиреЗ рдмрдирд╛рдпрд╛ рдПрдХ рдФрд░ рдЖрд╕рд╛рди рдЙрдкрдХрд░рдг wsrun
lerna run
, рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рдЪрд▓рд╛рддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХреНрд░рдо рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, wsrun рдЙрдирдХреЗ package.json
рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓ рдСрд░реНрдбрд░рд┐рдВрдЧ рдореЗрдВ рдкреИрдХреЗрдЬ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╕рдорд╛рдирддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдмреЗрд╣рддрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЗрд╕рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдмрд╕ рдПрдХ рдиреЛрдЯ, рдУрдУ рдпрд╛рд░реНрди рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдореЛрдиреЛрд░реЗрдкреЛ рдЙрдкрдХрд░рдг рд╣реИред рдЗрд╕рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ 'рдЯреЛрдкреЛрд▓реЙрдЬрд┐рдХрд▓' рдСрд░реНрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рднреА рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИред
рдореИрдВ рдпрд╣рд╛рдВ "рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ" рд╢рдмреНрдж рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рдХреНрд╖реНрдп рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдпрдж рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛ (https://github.com/Microsoft/TypeScript/issues/3469#issuecomment-341317069) рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдмрд╣реБрдд рдмрд╛рд░ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рдорд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдХрдИ рдЯреАрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдореЛрдиреЛрд░реЗрдкреЛ рд╣реИ, рдЗрд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ common-library
рдкреНрд▓рд╕ рдХреБрдЫ рдРрдкреНрд╕ рддрдХ рдШрдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: app1
рдФрд░ app2
ред рдЖрдИрдбреАрдИ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд╛рдо рдмрджрд▓реЗрдВ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЛ рд╕рднреА рддреАрди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди app1
рдФрд░ app2
рднреА рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрдорд╛рдг рд▓рдХреНрд╖реНрдп рд╣реИрдВред рдЬрдмрдХрд┐ рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдмрд┐рд▓реНрдб рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдЕрд▓рдЧ рдЪрд┐рдВрддрд╛ рд╣реИ, рд╕рдЪреНрдЪрд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдРрдкреНрд╕ рдХрд╛рдлреА рдЫреЛрдЯреЗ рд╣реИрдВ рдФрд░ cd app1 && tsc
рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдареАрдХ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд▓реЗрдХрд░ рдЖрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдореЛрдиреЛрд░реЗрдкреЛ рдХреНрд░реЙрд╕-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ/рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдпрд╣ рд╕реЗрдЯрдЕрдк рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдмрдирд╛рдо рдХреЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
рд░реВрдЯ tsconfig:
"compilerOptions": {
"baseUrl": ".",
// global types are different per project
"types": [],
"paths": {
"lib": ["packages/lib/src"],
"xyz1": ["packages/xyz1/src"],
"xyz2": ["packages/xyz2/src"],
}
},
"include": ["./stub.ts"], // empty file with export {} to stop vscode complaining about no input files
"exclude": ["node_modules"]
рд╕рдВрдХреБрд▓/xyz1/tsconfig.json
{
"extends": "../../tsconfig",
"compilerOptions": {
"types": ["node"],
},
"include": ["src/**/*"]
}
рд╕рдВрдХреБрд▓/xyz2/tsconfig.json
{
"extends": "../../tsconfig",
"compilerOptions": {
"types": ["webpack-env"]
},
"include": ["src/**/*"]
}
рд╕рдВрдХреБрд▓/lib/tsconfig.json
{
"extends": "../../tsconfig",
"compilerOptions": { ... },
"include": ["src/**/*"],
// special file to load referenced projects when inside in lib package, without it they won't be
// visible until you open some file in these projects
"files": ["./references.ts"],
}
рд╕рдВрдХреБрд▓/lib/tsconfig-build.json
{
"extends": "./tsconfig",
// exclude referenced projects when building
"files": []
}
рд╕рдВрдХреБрд▓/lib/references.ts
import "xyz1";
import "xyz2";
export {};
рдЖрдкрдХреЛ рдкреИрдХреЗрдЬ рдХреЗ package.json
рд╕рд╣реА main
рд╕рдВрдкрддреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдиреЛ-рд▓рд┐рдм рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рднреА types
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
"main": "src/main.tsx",
"types": "src/main.tsx",
рдЗрд╕ рддрд░рд╣ lib
рдореЗрдВ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ/рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ xyz1
рдФрд░ xyz2
рдореЗрдВ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рднреА рд░рд┐рдлреИрдХреНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреНрд▓реЛрдмрд▓/рд▓рдХреНрд╖рд┐рдд libs рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЧреНрд░реИрдбрд▓ рдореЗрдВ, рд╡реЗ рдмрд╕ рдЗрд╕реЗ - рд╕рдордЧреНрд░ рдирд┐рд░реНрдорд╛рдг рдХрд╣рддреЗ рд╣реИрдВ ред
рд╡реИрд╕реЗ, рдЕрдЧрд░ рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдХреНрдпрд╛ рдореБрдЭреЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореИрдВрдиреЗ рд░реЗрдкреЛ рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреЛрдИ рдЫреЛрдЯреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ (рдореИрдВ рд╕реНрд░реЛрдд рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ: рдХреЛрдгреАрдп, рдЖрдпрдирд┐рдХ, рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдЬрдм рдореИрдВ рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдпрд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рджреВрд░ рд╣реВрдВ ...) рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕реЗ рдорджрдж рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдореБрдЭреЗ рдЬрд╛рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ред
рдзрдиреНрдпрд╡рд╛рдж!
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдЬреНрдЬреНрд╡рд▓ рднрд╡рд┐рд╖реНрдпред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ рдЬреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд▓реЛрдЧ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рд╡реЗ рд╕рд╛рдкреЗрдХреНрд╖ рдореЙрдбреНрдпреВрд▓ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред https://github.com/RyanCavanaugh/project-references-demo рдкрд░ рдПрдХ рдирдореВрдирд╛ рд░реЗрдкреЛ рд╣реИ рдЬреЛ рдореВрд▓ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
git clone https://github.com/RyanCavanaugh/TypeScript
git checkout pr-lkg
npm install
npm run build
npm link
рдлрд┐рд░ рдЕрдкрдиреЗ рджреВрд╕рд░реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ:
npm link typescript
рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЪреАрдЬреЗрдВ рдмрджрд▓рддреА рд╣реИрдВ, рдореИрдВ pr-lkg
рдЯреИрдЧ рдХреЛ рдирд╡реАрдирддрдо рд╡рд░реНрдХрд┐рдВрдЧ рдХрдорд┐рдЯ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд░рд╣реВрдВрдЧрд╛ред рдореЗрд░реЗ todos рдкрд░ рдЕрдЧрд▓рд╛:
@RyanCavanaugh рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ del
рдореЙрдбреНрдпреВрд▓ рдпрд╛ Error: Cannot find module 'C:\github\TypeScript\built\local\tsc.js'
(рд╢рд╛рдпрдж рдЖрдкрдХрд╛ рд╕реНрдерд╛рдиреАрдп рдкрде?)
рдХреНрдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ tsc
рдпрд╛ рдпрд╣ рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде VSCode рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ-рд╡рд╛рдЗрдб рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рднреА рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛?
...рднреА pr-lkg
рдЯреИрдЧ рдЧрд╛рдпрдм рд╣реИред
рдЯреИрдЧ рд╡рд╣рд╛рдБ рд╣реИ (рдпрд╣ рдПрдХ рд╢рд╛рдЦрд╛ рдирд╣реАрдВ рд╣реИ)ред рджреЗрдЦреЗрдВ https://github.com/RyanCavanaugh/TypeScript/tree/pr-lkg
references
рдореЗрдВ tsconfig.json
рдСрдкреНрдЯ-рдЗрди рдкреНрд░рддрд┐-рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ, рдХреНрдпрд╛ рдЗрд╕реЗ rootDir
рдмрд╛рд╣рд░ рд╣рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬрд╝ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛?
рдореИрдВ sandbox
рд╕рдВрдкрддреНрддрд┐ рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
# tsconfig.json
{
"compilerOptions": {
"outDir": "lib",
"sandbox": "."
},
"include": ["src/index.ts"]
}
рд╕реИрдВрдбрдмреЙрдХреНрд╕ рднреА рдЙрд╕реА рдорд╛рди рдкрд░ rootDir
рд╕реЗрдЯ рдХрд░реЗрдЧрд╛ред tsconfig.json
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрде рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╕рд╛рдорд╛рдиреНрдп рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛, рдФрд░ рдЖрдк tsconfig.json
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП FS рдЯреНрд░реА рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВред
# package.json
{
"name": "animals",
"module": "src",
"typings": "lib",
"dependencies": {
"core": "*"
}
}
рдЗрд╕ рддрд░рдл:
references
рдФрд░ dependencies
) рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред@RyanCavanaugh , рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ, рдореИрдВ рдХреЗрд╡рд▓ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ рдФрд░ рдореИрдВ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рднреЗрдЬ рдкрд╛рдКрдБрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, travis-ci.org рдкрд░ред рд╕рд╣реА?
@billti / @mhegazy . рдХреЗ рд╕рд╛рде рдЖрдЬ рдХреА рдмреИрдардХ рдХреЗ рдиреЛрдЯреНрд╕
рд╕рд╛рдЗрдбрдмрд╛рд░: рдпрд╣ рдирд╛рдо рдЖрдЬ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛
function f() {
if (Math.random() > 0.5) {
return { foo: 10 };
} else {
return { foo: 20 };
}
// rename foo here doesn't rename *both* instances in the function body
f().foo;
рдзрдиреНрдпрд╡рд╛рдж рд░рдпрд╛рди, рдореЛрд╣рдореНрдордж рдФрд░ рдмрд┐рд▓ред рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╕рдВрджрд░реНрдн рдЦреЛрдЬреЗрдВ/рдирд╛рдо рдмрджрд▓реЗрдВ рдкрд░рд┐рджреГрд╢реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬрдм рдореИрдВрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореВрд▓ рд╢рд┐рдХрд╛рдпрдд рдХреА рдереА рдЬреЛ рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдореЙрдбреНрдпреВрд▓рд░ рд╣реИрдВ рд▓реЗрдХрд┐рди рдмрдбрд╝реА рдирд╣реАрдВ рд╣реИрдВред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЕрдм рддрдХ рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡ рдФрд░ рдХрд╛рдо рджреЗрдЦрд╛ рд╣реИ, рд╡рд╣ рдПрдХ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдкреНрд▓реЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд╛рдпрджреЗрдордВрдж рд╣реИ, рдордзреНрдпрдо рдирд╣реАрдВред рд░реЗрдпрд╛рди рдХреА рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рд╕реБрдирд╛ рд╣реИ, рд╡рд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдордзреНрдпрдо рдЖрдХрд╛рд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдПрд░реНрдЧреЛрдиреЙрдорд┐рдХреНрд╕ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреАрдо рдХреЛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдЖрдк рдХрдорд╛рд▓ рдХрд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд▓рд░реНрди/рдпрд╛рд░реНрди рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рддрд░рдХреАрдм рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧреАред
рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ main
рдФрд░ types
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдкрдиреЗ src/index рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред ts рдлрд╝рд╛рдЗрд▓, рдФрд░ рд╕рдВрджрд░реНрдн рдЦреЛрдЬреЗрдВ/рдирд╛рдо рдмрджрд▓реЗрдВ рдкрд░рд┐рджреГрд╢реНрдп рдмрд╕ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдФрд░ рдЖрдк рдЕрдкрдиреЗ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ tsc рд░рдирд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
рдЖрдк рдЕрдкрдиреЗ рдХреБрдЫ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рд╕рднреА рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХрд╛ рдлреЛрдиред
рдХреБрдЫ рдХрдорд┐рдпрд╛рдВ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВ (рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рддреАрдХреЛрдВ рдХрд╛ рдЖрдпрд╛рдд рд╣реИ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рдкреВрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░реЗрдЧрд╛), рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЬрдм рдЖрдк рдПрдирдкреАрдПрдо рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдореБрдЦреНрдп рдФрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЙрдЪрд┐рдд рдорд╛рдиреЛрдВ рдкрд░ рд╕реЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЖрдкрдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╛ рддреЛ)
рдЙрдкрд░реЛрдХреНрдд рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдХрдореЛрдмреЗрд╢ рд╕рднреА рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдорд┐рд▓реАрдВ
рдпрд╣рд╛рдБ рд▓рд░реНрди/рдпрд╛рд░реНрди рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рддрд░рдХреАрдм рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧреАред
рдЙрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрдкрдиреЗ package.json рдореЗрдВ рдореБрдЦреНрдп рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдкрдиреА src/index.ts рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ, рдФрд░ рд╕рдВрджрд░реНрдн рдЦреЛрдЬреЗрдВ/рдирд╛рдо рдмрджрд▓реЗрдВ рдкрд░рд┐рджреГрд╢реНрдп рдмрд╕ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдЙрд╕ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ _external_ рдкреИрдХреЗрдЬ рдХреА ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рдЙрд╕ рдкреИрдХреЗрдЬ рдХреЗ _sources_ рдереЗ рдЬрд┐рд╕рдХреА рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВред рдпрд╣ рдХрдИ рдореБрджреНрджреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рдмрд╛рд╣рд░реА рдкреИрдХреЗрдЬ рдХрдИ рдмрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рд░ рдмрд╛рд░ _requiring_ рдкреИрдХреЗрдЬ рдХреЗ tsconfig рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ tsconfigs (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ libs) рд╣реИрдВ, рддреЛ рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрдиреЗ рддрдХ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдкрд░ рдЭреВрдареА рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрдХреБрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рднреА рдзреАрдореА рдЧрддрд┐ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИрдВред
рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ rootDir
рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдкреИрдХреЗрдЬ рд╕реЗ рдХрд┐рд╕реА рднреА TS рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реАрдзреЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрдЬрд╛рдп рдХреЗрд╡рд▓ index
ред рдпрджрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рд╛рд╡рдзрд╛рди рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╡реЗ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдПрдкреАрдЖрдИ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдордЬрдмреВрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреИрдХреЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдмрд╛рд╣рд░реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛ред
рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╣рдордиреЗ рдХрдорд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдЯреАрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрдирдХрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред рд╕рднреА рдЗрдВрдЯрд░-рдкреИрдХреЗрдЬ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ index.d.ts рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдЙрдиреНрд╣реЗрдВ рдмрд╛рд╣рд░реА рдорд╛рдирддрд╛ рд╣реИ рдФрд░ рд╕рдм рдЕрдЪреНрдЫрд╛ рд╣реИред
рдмреЗрд╢рдХ .d.ts
рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдмрд╣реБ-рдЪрд░рдг рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ (рд╡реЗрдмрдкреИрдХ рдЬреИрд╕реЗ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ) рдФрд░ рдЦрд░рд╛рдм рдЖрдИрдбреАрдИ рдЕрдиреБрднрд╡ рдХреА рд╕рдорд╕реНрдпрд╛ (рдирд╛рдо рдмрджрд▓реЗрдВ, рд╕рдВрджрд░реНрдн рдкреИрдХреЗрдЬ рд╕реАрдорд╛рдУрдВ рдХреЛ рдкрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ) )
рдореИрдВ рдХреБрдЫ рдЕрдиреНрдп рднрд╛рд╡рдирд╛рдУрдВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ - рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИ, рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдирд╣реАрдВред рдмреЗрд╣рддрд░ рдорд▓реНрдЯреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЯреВрд▓рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореБрджрд╛рдп рдореЗрдВ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░, рд╕реА # рдореЗрдВ рд░реЛрд╕рд▓рд┐рди рдирд╛рдордХ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рдПрдордПрд╕рдмрд┐рд▓реНрдб рдирд╛рдордХ рдПрдХ рдмрд┐рд▓реНрдб рдЯреВрд▓ рд╣реИред
рдЖрдЬ @mhegazy рдХреЗ рд╕рд╛рде рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ рдХрд┐ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрдо рджрд░реНрдж рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреИрд░-рдкрддрд┐рдд рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
// alpha.ts
const v = { a: 1 };
export function f() { return v; }
export function g() { return v; }
// alpha.d.ts (generated)
export function f(): { a: number };
export function g(): { a: number };
// beta.ts (in another project)
import { f } from '../etc/alpha';
f().a;
// gamma.ts (in yet another project)
import { g } from '../etc/alpha';
g().a;
рдХреБрдВрдЬреА рдЕрд╡рд▓реЛрдХрди рд╣реИ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдирд╛рдо рдмрджрд▓рдиреЗ рдЕрд╕рдВрднрд╡ рд╣реИ f().a
рдирд╛рдо рдмрджрд▓рдиреЗ рдЪрд╛рд╣рд┐рдП g().a
рдЬрдм рддрдХ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ alpha.ts
рджреЛ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЬрдирд╛ рдХрд╛ рдПрдХ рдореЛрдЯрд╛ рд╕реНрдХреЗрдЪ:
@RyanCavanaugh рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдЧрд╛ / рдЗрд╕ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ
рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЦреБрд▓реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдПрдВрдбрд░реНрд╕ рдФрд░ рдореЛрд╣рдореНрдордж рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рдиреЛрдЯреНрд╕
prepend
рднреА .d.ts
рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ? рд╣рд╛рдВ@internal
рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ? рд╣рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп .d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рд╡реЗ рдЖрдЙрдЯрдкреБрдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВ--stripInternal
рдирд┐рдХрд╛рд▓реЗрдВremove-internal
рдЯреВрд▓ рд▓рд┐рдЦреЗрдВрдЧреЗ (рдбреЛрдирд┐рд╢)@internal
рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддреА рд╣реИ@types
рд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?noEmitOnError
рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ? рд╣рд╛рдВредreferenceTarget
-> composable
tsbuild
рдпрд╛ рд╕рдордХрдХреНрд╖ composable
рдХреА рдЧреИрд░-рдЕрдкрд╕реНрдЯреНрд░реАрдо-рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ{ path: "../blah", circular: true }
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВрдорд┐рд╢реНрд░рдг
рдореИрдВ рдкрд╣рд▓реЗ рд╣реА рд╣рд╛рд░ рдЪреБрдХрд╛ рд╣реВрдВред рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рд┐рд░реНрдл рд╕рдВрдХрд▓рдХ (рдЕрд▓рдЧ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ) рдХреЗ рд╕реНрд░реЛрддрдореИрдк рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рджреВрд░ рдереЗ рддреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ (рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдмрд╛рдз рдЧреЛ-рдЯреВ рдбрд┐рдл рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ)ред
@RyanCavanaugh
#реирейрепрекрек рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рднреА рд╕рдВрджрд░реНрднрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛/рдвреВрдВрдврдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рд╣рдореЗрдВ composite: true
рдФрд░ projectReferences: []
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рдХреЗрд╡рд▓ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛рдУрдВ (рд▓реЗрдХрд┐рди tsbuild рдирд╣реАрдВ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
#реирейрепрекрек рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рднреА рд╕рдВрджрд░реНрднрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛/рдвреВрдВрдврдирд╛ рдЪрд╛рд╣рд┐рдП?
рдЕрднреА рддрдХ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рдкрд░ рдЖрдЧреЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдХреНрдпрд╛ рд╣рдореЗрдВ рд╕рдордЧреНрд░: рд╕рддреНрдп рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн: [] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рдХреЗрд╡рд▓ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛рдУрдВ (рд▓реЗрдХрд┐рди tsbuild рдирд╣реАрдВ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ .. рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ "рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛" рдФрд░ "рдирд┐рд░реНрдорд╛рдг" рдирд╣реАрдВ?
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ .. рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ "рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛" рдФрд░ "рдирд┐рд░реНрдорд╛рдг" рдирд╣реАрдВ?
рдореИрдВ рдХреЗрд╡рд▓ рдореЛрдиреЛрд░реЗрдкреЛ рдореЗрдВ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рдВрдкрд╛рджрдХ рд╕рдорд░реНрдерди (рдирд╛рдо рдмрджрд▓реЗрдВ/рд╕рднреА рд╕рдВрджрд░реНрдн/рдЖрджрд┐...) рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реВрдВ, рдирдП рдмрд┐рд▓реНрдб рдЯреВрд▓ рдореЗрдВ рдирд╣реАрдВ (рдЙрд░реНрдл build mode
) (#22997) рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдореЗрд░реЗ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдмреЗрдмрд▓ред
рдмрд╕ рдпрд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд┐рд▓реНрдб рдПрдХ рдСрдкреНрдЯ-рдЗрди рд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ .. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП VSCode рдореЗрдВ рдЖрдкрдХреЗ рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП tsc
рд╕рдорд╛рди рдХреИрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреНрд░реЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реЗрдлрд░реА рдХреЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдШреЛрд╖рдгрд╛рдУрдВ рдФрд░ рдШреЛрд╖рдгрд╛ рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рджреВрд╕рд░реЛрдВ рдХреЛ рдкрде рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рди рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирд╛рдо рд╕реЗ? рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрде рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЧреНрд▓рдмреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛рд░реНрди рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдХреЗ рд╕рдорд╛рди, рдпрд╛ рд╢рд╛рдпрдж рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдХреЗ:
рдореВрд▓ рд░реВрдк рд╕реЗ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп:
"dependencies": [
"../common",
"../util"
],
рдХреНрдпрд╛ рд╣рдо рдХреГрдкрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
"dependencies": [
"common",
"util"
],
рдФрд░ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рд╣реИ tsconfig.json
"workspace": {
"common": "packages/common",
"util": "packages/util"
}
рдпрд╛ рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ, рдкрде рд╕рд┐рдВрдЯреИрдХреНрд╕:
"workspace": {
"*":"packages/*"
}
рд▓рд╛рдн:
рдпрд╛ рдХрдо рд╕реЗ рдХрдо, рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреИрд░-рдкрде рдирд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛ './' рдпрд╛ '../' рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ) рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реИрдВ ...
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рд▓реЗрдХрд┐рди рдпрд╛рд░реНрди 1.7 рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ "рдХреЗрдВрджреНрд░рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреЗрд╢ рдХреА, рдпрд╣ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рджреЗрдЦреЗрдВ ред
рдХреНрдпрд╛ рдпрд╣рд╛рдВ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рдХрд╛рдо рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИ @RyanCavanaugh рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн/рдмрд┐рд▓реНрдб рдореЛрдб рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╢рд╛рдпрдж рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ? рдореЗрд░реА рдЖрдВрдд рдХреА рднрд╛рд╡рдирд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╛рд░реНрди рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдмреАрдЪ _somewhere_ (рдПрдирдкреАрдПрдо рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рд╡рд░реНрд╖ рднреА рдорд┐рд▓реЗрдЧрд╛) рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЛрдиреЛрд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд░реНрдерди рд╣реИред (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рджрд░реНрдж рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред)
рдореБрдЭреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдкреНрд░рдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╡рд╛рдХрдИ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред рд╣рдо рдЕрдЧрд▓реЗ рдПрдХ рдорд╣реАрдиреЗ рдореЗрдВ рдСрд░реЗрд▓рд┐рдпрд╛ рд╡реАрдиреЗрдХреНрд╕реНрдЯ рдХреЛ рдПрдХ рдореЛрдиреЛрд░реЗрдкреЛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рд╣рдорд╛рд░рд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг 100% рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдФрд░ рдпрджрд┐ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рд╣рдо Lerna рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ TS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред рд╣рдо рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╢реБрд░реБрдЖрддреА рдЕрдкрдирд╛рдиреЗ рд╡рд╛рд▓реЗ/рдкрд░реАрдХреНрд╖рдХ рдмрдирдХрд░ рднреА рдЦреБрд╢ рд╣реИрдВ :)
рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░ рд╕рдорд░реНрдерди рдХреЛрд░ рд╕рдорд░реНрдерди рдФрд░ рдЧреЛрдЯреЛ рдбреАрдИрдПрдлрд╝ рдХреЛ рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬрд╝ (рдЯреАрдПрд╕ 2.9) рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред tsc --b
рдмрд┐рд▓реНрдб рд╕рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ рдФрд░ TS 3.0 рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИред рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдХреЛрдб рдЖрдзрд╛рд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдкреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд░реНрдерди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЕрднреА рднреА рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: 1. рдмрд╣реБ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрджрд░реНрдн рдЦреЛрдЬреЗрдВ/рдирд╛рдо рдмрджрд▓реЗрдВред 2. рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ .d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛, рдФрд░ 3. рдмрд╣реБ-рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП --watch
рд╕рдорд░реНрдердиред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рднреАред
рдпрд╣ рдЯрд┐рдХрдЯ 3 рд╕рд╛рд▓ рд╕реЗ рдЙрд╕рдХреА рдХрд┐рддрд╛рдмреЛрдВ рдкрд░ рд╣реИред рдЕрднреА рднреА 3/6 рдмрдХрд╛рдпрд╛ рдЖрдЗрдЯрдо?
@claudeduguay рдпрд╣ рдПрдХ рдореМрд▓рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд╢реНрди рдордирд╛рдиреЗ рдХрд╛ рд╕рдордп рдХреНрдпрд╛ рдЖрдкрдХреЛ рдирд╣реАрдВ рд▓рдЧрддрд╛? рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдЦреБрд╢ рд╣реВрдВ!
@mhegazy рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИред рдореБрдЭреЗ рдпрд╣ рд╕реБрдирдХрд░ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ TS рдЯреАрдо рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рднреА рдбреЙрдЧрдлреВрдб рдХрд░ рд░рд╣реА рд╣реИред рдкрд┐рдЫрд▓реА рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдФрд░ рдЗрд╕реЗ рдСрд░реЗрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ :) рдЬреИрд╕реЗ рд╣реА рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реЛрдВрдЧреЗ, рд╣рдо рдЕрдкрдиреЗ vNext рдХреЛ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛!
@mhegazy рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд╢ @aurelia/kernel
, @aurelia/runtime
, @aurelia/jit
рдЖрджрд┐ рдЬреИрд╕реЗ рдкреИрдХреЗрдЬ рд╣реИрдВред рд╡реЗ рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ import
рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рджреМрд░рд╛рди рдмрдпрд╛рдиред TS рдХрдВрдкрд╛рдЗрд▓рд░ рдХреИрд╕реЗ рд╕рдордЭреЗрдЧрд╛ рдХрд┐ рдпреЗ рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджрд░реНрднрд┐рдд рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рдореИрдк рдХрд░рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджрд░реНрднрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреА package.json рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрдард╛рдПрдЧрд╛? рдпрд╣ Lerna рдпрд╛ Yarn Workspaces рд╕реЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рднрд┐рдиреНрди рд╣реЛрдЧрд╛? рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдореЗрдВ рдореЗрд░рд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реВрдк рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд░реНрдирд╛ (рдбрд┐рдк рд▓рд┐рдВрдХрд┐рдВрдЧ рдФрд░ рдкреНрд░рдХрд╛рд╢рди) рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЯреАрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ (рдмрд┐рд▓реНрдб) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореИрдВ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЯреАрдПрд╕ рдХреИрд╕реЗ рдареАрдХ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ package.json рдФрд░ node_modules рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред TS рд░реЗрдкреЛ рд╕реНрд░реЛрдд рдЖрдкрдХреЗ рдФрд╕рдд Lerna рдкреНрд░реЛрдЬреЗрдХреНрдЯ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ) рд╕реЗ рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдиреЗ рд▓рдЧрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдХреЛрдИ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛ рдЖрдк рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ espред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЬреЛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕рдХреЗ рд╕рдорд╛рди рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдбреЗрдореЛ рд╕рдорд╛рдзрд╛рди рд╕реЗрдЯрдЕрдк рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рдж!
рдореИрдВ @EisenbergEffect рдХреЗ рд╕рдорд╛рди рдкреНрд░рд╢реНрди рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реВрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореИрдВ рдпрд╣ рднреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ lerna
-рдкреНрд░рдмрдВрдзрд┐рдд рдореЛрдиреЛрд░реЗрдкреЛ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдореЛрдиреЛрд░реЗрдкреЛ рдкрд░рд┐рджреГрд╢реНрдп
рдЖрдЗрдП рдПрдХ рд╕реЗрдЯрдЕрдк рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рд▓рд░реНрди рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рд╣реИ:
/packages
/a
/node_modules
/b -> symlink to b with package.json "types" pointing to dist/index.d.ts
/b
/dist
/index.d.ts -> built output of entry point declaration file
рд╣рдо рдпрд╣рд╛рдВ рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рд╣реИ b
рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛, рд╣рдордиреЗ a
рдпрджрд┐ a
рдкреБрд░рд╛рдирд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо "references": [ { "path": "../b" } ]
рдХреЛ a
рдХреЗ tsconfig.json
рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ рдФрд░ tsc --build
рдореЗрдВ a
рдЪрд▓рд╛рдПрдВрдЧреЗ рддрд╛рдХрд┐ b
рдХрд╛ рд╕рд╣реА рдЕрдкрд╕реНрдЯреНрд░реАрдо рдмрд┐рд▓реНрдб рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХреЗред package.json
рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ tsconfig.json
рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЙрдкрдпреБрдХреНрдд рд╣реЛред
рдПрдХ рдФрд░ рдкрд░рд┐рджреГрд╢реНрдп (рд╢рд╛рдпрдж рдХрдо рдЖрдо) рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рд╕рд┐рдореНрд▓рд┐рдВрдХрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рдереЗ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА "рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ" рдЬреИрд╕реЗ рдЖрдк рдкреИрдХреЗрдЬ рдХреЗ рд▓рд╛рдЗрд╡ рд╕реЗрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗред рдЖрдк рдЗрд╕реЗ рдЖрдЬ рдХреБрдЫ рдХрд╛рдлреА рдХрдард┐рди рдкрде рдорд╛рдирдЪрд┐рддреНрд░рдг рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рд▓реЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдСрд░реНрдбрд░рд┐рдВрдЧ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЬрдм рднреА рдЗрд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрде рдореИрдкрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн tsconfig рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд┐рд╕реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реЛрдирд╛ рдмрд╣реБрдд рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛрдЧрд╛; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдерд╛
{
"compilerOptions": { "outDir": "bin" },
"package": "@RyanCavanaugh/coolstuff"
}
рдлрд┐рд░ "references": [{ "path": "../cool" }]
рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ @RyanCavanaugh/coolstuff
-> ../cool/bin/
рд╕реЗ рдкрде рдореИрдкрд┐рдВрдЧ рдЬреБрдбрд╝ рдЬрд╛рдПрдЧреАред рд╣рдордиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рджреГрд╢реНрдп рд╣реЛ рддреЛ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд▓рд░реНрди рдФрд░ рдЯреАрдПрд╕ рдпрд╣рд╛рдВ рд╕рд╣рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╣рд╛рдВ рдЙрдкрдпреБрдХреНрдд рд╣реЛ, package.json рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ tsconfig.json рдореЗрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдмрд╛рд╣рд░реА рдЯреВрд▓рд┐рдВрдЧ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЖрдкрдХреЗ package.json
(рдмрд╢рд░реНрддреЗ рдпрд╣ рдЖрдкрдХреЗ tsconfig рдХреЗ рд╕рд╛рде рд╣реЛ) рдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ composite: true
рд╕реЗрдЯ рд╣реИ (рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╣рд▓ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдореЗрдВ tsconfig.json
, рдЕрдЧрд░ рдЗрд╕рдореЗрдВ рдПрдХ рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рдмрд┐рд▓реНрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЛрдб рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ)ред рдЪреВрдВрдХрд┐ рд╕рдм рдХреБрдЫ рдЬрдЧрд╣ рдореЗрдВ рд╕рд┐рдореНрд▓рд┐рдВрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓реНрдк (рдмрд╣реБрдд? рдХреЛрдИ?) рдХреЛ рдмрджрд▓рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓рд░реНрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЯреАрдПрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ (рдпрд╛ рдмрд┐рд▓реНрдб-рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХ) рд╕рд╛рдорд╛рди рдХреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ afaik рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рд╕рдм рдХреБрдЫ рдЬрдЧрд╣ рдореЗрдВ рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд░реНрдЬрдирд┐рдВрдЧ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдЬ рд╣рдо рдЬреЛ рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕ рдкрд░ рдПрдХ рдЕрдиреБрдХреВрд▓рди рд╣реЛрдЧрд╛, рдЬреЛ ts
рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ (рдЪреВрдВрдХрд┐ рд╣рдо рдЙрди рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ рдкреБрд░рд╛рдиреА рд╣реЛрдиреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдм рдХреБрдЫ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
@RyanCavanaugh рдпрд╣ рдмрд╣реБрдд рд░реЛрдорд╛рдВрдЪрдХ рд▓рдЧрддрд╛ рд╣реИред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдЕрдЧрд░ рдпрд╣ рд░рд╢ рдХреА рд╕рд┐рдореНрд▓рд┐рдВрдХрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рд╕рд╛рдорд╛рдиреНрдп/temp/package.json рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкреИрдХреЗрдЬ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░реЗрдкреЛ рдореЗрдВ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХрд╛ рд╕реБрдкрд░рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо рдЗрд╕ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЧрд▓ рдЗрдВрд╕реНрдЯрд╛рд▓ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pnpm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред (рдкреАрдПрдирдкреАрдПрдо рдПрдирдкреАрдПрдо рдХреА рдЯреНрд░реА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдд-рдПрд╕рд╛рдЗрдХреНрд▓рд┐рдХ-рдЧреНрд░рд╛рдл рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ)ред рдлрд┐рд░ рд░рд╢ рд░реЗрдкреЛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп/рдЕрд╕реНрдерд╛рдпреА рдХреЗ рддрд╣рдд рдЙрдкрдпреБрдХреНрдд рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рдореНрд▓рд┐рдВрдХ рд╕реЗ рдмрдирд╛ рд╣реЛрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдорд╛рдирдХ NodeJS рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд рд╣реИред рдпрд╣ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реЗ рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдХреБрдбрд╝рди рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕рдореАрдХрд░рдг рд╣реИ, рдЬрдмрдХрд┐ рдЕрднреА рднреА рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЛ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЗрдЬрд╛рдЬрдд рд╣реИред
рд╣рдо рдЗрд╕ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП tsconfig.json
рдореЗрдВ рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдпрджрд┐ рдЧреЛрдЯреЛ-рдбреЗрдлрд┐рдирд┐рд╢рди рдлреАрдЪрд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЧрд┐рдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рджреМрд░рд╛рди рд╕реНрд╡рдд: рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
@pgonzal рд░рд╢ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рджреЗрдЦрд╛ рдерд╛ред рдореИрдВ рдЖрдЬ рд░рд╛рдд рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛ред
@RyanCavanaugh рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд▓рд░реНрди рдХреЗ рд╕рд╛рде рдЖрдкрдХрд╛ рдкрд╣рд▓рд╛ рдкрд░рд┐рджреГрд╢реНрдп рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдмрд╕реЗ рдХрд░реАрдм рд╣реИред рдпрд╣рд╛рдБ TS рдФрд░ lerna рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ UX рд░реЗрдкреЛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо https://github.com/aurelia/ux рдкрд░ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдорд░реНрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
@weswigham рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╣рдорд╛рд░реЗ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рднреА рдлрд┐рдЯ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рд░реЗрдкреЛ рдКрдкрд░ред
рдмрд╕ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╛рд░реНрди рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЙрдбреНрдпреВрд▓ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреИрдХреЗрдЬ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд┐рдорд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╡реЗ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рд┐рдорд▓рд┐рдВрдХ рд╣реЛрддреЗ рд╣реИрдВ node_modules
ред
рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджрд░реНрдн рдЬреЛ рдПрдХ рдмрд┐рдВрджреБ ('./' рдпрд╛ '../') рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╡реЗ "рдирд╛рдорд┐рдд рд╕рдВрджрд░реНрдн" рд╣реЛрдВрдЧреЗ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдХреНрд░рд┐рдп рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд░рдгрдиреАрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛ред
@spion рд╣рдо рдЬрд░реВрд░рдд path
рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "references": [ { "module": "@foo/baz" } ]
); рдореИрдВ рднреНрд░рдо рдкреИрджрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдЬрд┐рд╕рдореЗрдВ "bar"
рдФрд░ "./bar"
рдорддрд▓рдм files
рдореЗрдВ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ рд▓реЗрдХрд┐рди references
рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдмрд╛рдд рд╣реИ
рдиреАрдЪреЗ рдбреЙрдХреНрд╕/рдмреНрд▓реЙрдЧрдкреЛрд╕реНрдЯ рдХрд╛ рдХрд╛рд░реНрдп рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ (рдлрд╝реАрдбрдмреИрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ)
рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдБред рдореИрдВ рдЕрдм рдореЛрдиреЛрд░реЗрдкреЛ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╡рд╣рд╛рдВ рдХрд┐рд╕реА рднреА рдЕрдВрддрд┐рдо рдмрдЧ/рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЬрд▓реНрдж рд╣реА рдЗрд╕ рдкрд░ рдХреБрдЫ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.0 рдореЗрдВ рдПрдХ рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╕рдВрд░рдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ, рдЖрдк рдмрд┐рд▓реНрдб рд╕рдордп рдореЗрдВ рдмрд╣реБрдд рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рддрд╛рд░реНрдХрд┐рдХ рдЕрд▓рдЧрд╛рд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдирдП рдФрд░ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо tsc
, --build
рдзреНрд╡рдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореЛрдб рднреА рдкреЗрд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рддреЗрдЬреА рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд┐рд▓реНрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд╛рде рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЖрдЗрдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреИрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрдн рд╣рдореЗрдВ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, converter
рдФрд░ units
, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓:
/src/converter.ts
/src/units.ts
/test/converter-tests.ts
/test/units-tests.ts
/tsconfig.json
рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИрдВ рдФрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреА рд╣реИрдВ:
// converter-tests.ts
import * as converter from "../converter";
assert.areEqual(converter.celsiusToFahrenheit(0), 32);
рдкрд╣рд▓реЗ, рдпрджрд┐ рдЖрдк рдПрдХ tsconfig рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рдереА:
src
рджрд┐рдЦрд╛рдИ рджрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ test
рдФрд░ src
рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рдЬреЛ рдЖрдк рд╢рд╛рдпрдж рдирд╣реАрдВ рдЪрд╛рд╣рддреЗрдЖрдк рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ tsconfig рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирдП рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ:
tsc
рджреЛ рдмрд╛рд░ рдЪрд▓рддреЗ рд╣реИрдВtsc
рджреЛ рдмрд╛рд░ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдЕрдзрд┐рдХ рд▓рдЧрддрд╛ рд╣реИtsc -w
рдПрдХ рд╕рд╛рде рдХрдИ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрдн рдЗрди рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
tsconfig.json
рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рдирдИ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рд╕рдВрдкрддреНрддрд┐ рд╣реИ, references
ред рдпрд╣ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ рдЬреЛ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреА рд╣реИ:
{
"compilerOptions": {
// The usual
},
"references": [
{ "path": "../src" }
]
}
рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджрд░реНрдн рдХреА path
рд╕рдВрдкрддреНрддрд┐ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ tsconfig.json
рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдпрд╛ рд╕реНрд╡рдпрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (рдЬрд┐рд╕рдХрд╛ рдХреЛрдИ рднреА рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
рдЬрдм рдЖрдк рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдирдИ рдЪреАрдЬрд╝реЗрдВ рд╣реЛрддреА рд╣реИрдВ:
.d.ts
) рд▓реЛрдб рд╣реЛрдЧреАoutFile
рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ .d.ts
рдлрд╝рд╛рдЗрд▓ рдХреА рдШреЛрд╖рдгрд╛рдПрдВ рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреАрдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ, рдЖрдк рдЯрд╛рдЗрдкрдЪреЗрдХрд┐рдВрдЧ рдФрд░ рд╕рдВрдХрд▓рди рдХреА рдЧрддрд┐ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рд╕рдореВрд╣реЛрдВ рдХреЗ рдкреНрд░рд╡рд░реНрддрди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
composite
рд╕рдВрджрд░реНрднрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдирдИ composite
рд╕реЗрдЯрд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд▓реНрджреА рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХреЗ рдХрд┐ рд╕рдВрджрд░реНрднрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХрд╣рд╛рдВ рдЦреЛрдЬрдирд╛ рд╣реИред
composite
рдзреНрд╡рдЬ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рдЪреАрдЬрд╝реЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИрдВ:
rootDir
рд╕реЗрдЯрд┐рдВрдЧ, рдпрджрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ tsconfig
рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИinclude
рдкреИрдЯрд░реНрди рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ files
рд╕рд░рдгреА рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЗрд╕ рдмрд╛рдзрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ tsc
рдЖрдкрдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреМрди-рд╕реА рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХреА рдЧрдИ рдереАрдВdeclaration
рдЪрд╛рд▓реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПdeclarationMaps
рд╣рдордиреЗ рдШреЛрд╖рдгрд╛ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рднреА рдЬреЛрдбрд╝рд╛ рд╣реИред
рдпрджрд┐ рдЖрдк --declarationMap
рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдорд░реНрдерд┐рдд рд╕рдВрдкрд╛рджрдХреЛрдВ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдкрд╛рд░ рдХреЛрдб рдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдВ" рдФрд░ рдирд╛рдо рдмрджрд▓реЗрдВ рдЬреИрд╕реА рд╕рдВрдкрд╛рджрдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
prepend
рд╕рд╛рде outFile
рдЖрдк рд╕рдВрджрд░реНрдн рдореЗрдВ prepend
рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреНрд░реАрдкреЗрдиреНрдб рдХрд░рдирд╛ рднреА рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
"references": [
{ "path": "../utils", "prepend": true }
]
рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдКрдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред
рдпрд╣ .js
рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ .d.ts
рдлрд╝рд╛рдЗрд▓реЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд╣реЛрдВрдЧреАред
tsc
рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдбрд┐рд╕реНрдХ рдкрд░ рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рд╕рд╣реА рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдореМрдЬреВрдж рд╣реЛрдЧрд╛ .
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
^ ^
/ \
B C
^ ^
\ /
D
рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝реЗрдВ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХреА рджреЛ рдкреНрд░рддрд┐рдпрд╛рдВ рд╕рд╛рде рдЦрддреНрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ A
рдХреЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ D
- рдЗрд╕ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдХреБрдЫ рдЯреНрд░реЗрдб-рдСрдл рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдЕрд╡рдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд░реНрднрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВ .d.ts
рдлрд╝рд╛рдЗрд▓реЛрдВ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдпрд╛ рддреЛ рдирдХрд▓реА рджреЗрдЦреЗ рдмрд┐рдирд╛ рдХреБрдЫ рдирд┐рд░реНрдорд╛рдг рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдпрд╛ рдпрд╣ рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдк рдПрдХ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╣реЛрдЧрд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдБред
рд╣рдо рдПрдХ рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдХреА .d.ts рдкреАрдврд╝реА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рд╣рдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореМрдЬреВрджрд╛ рдмрд┐рд▓реНрдб рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, tsc
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ --build
рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдЗрдП --build
рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдиреЗрдВред
рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдорд╛рд░реНрдЯ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмрд┐рд▓реНрдб рд╣реИред
3.0 рдореЗрдВ рдЖрдк --build
рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ tsc
ред
рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ tsc
рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд┐рд▓реНрдб рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред
tsc --build
( tsc -b
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ) рдЪрд▓рд╛рдирд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛:
рдЖрдк tsc -b
рдПрдХрд╛рдзрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдкрде (рдЙрджрд╛рд╣рд░рдг tsc -b src test
) рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
tsc -p
, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕реНрд╡рдпрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ рдпрджрд┐ рдЗрд╕рдХрд╛ рдирд╛рдо tsconfig.json
ред
tsc -b
рдХрдорд╛рдВрдбрд▓рд╛рдЗрдирдЖрдк рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
> tsc -b # Build the tsconfig.json in the current directory
> tsc -b src # Build src/tsconfig.json
> tsc -b foo/release.tsconfig.json bar # Build foo/release.tsconfig.json and bar/tsconfig.json
рдХрдорд╛рдВрдбрд▓рд╛рдЗрди рдкрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд╕ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ - tsc
рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдСрд░реНрдбрд░ рдХрд░реЗрдЧрд╛ рддрд╛рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рд╣рдореЗрд╢рд╛ рдкрд╣рд▓реЗ рдмрдиреА рд░рд╣реЗред
tsc -b
рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреБрдЫ рдЭрдВрдбреЗ рднреА рд╣реИрдВ:
--verbose
: рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдмреЛрдЬрд╝ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ (рдХрд┐рд╕реА рдЕрдиреНрдп рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)--dry
: рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ--clean
: рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ ( --dry
рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)--force
: рдРрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВ рдЬреИрд╕реЗ рдХрд┐ рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреБрд░рд╛рдиреЗ рд╣реИрдВ--watch
: рд╡реЙрдЪ рдореЛрдб ( --verbose
рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)рдЖрдо рддреМрд░ рдкрд░, tsc
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдпрд╛ рдЯрд╛рдЗрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ ( .js
рдФрд░ .d.ts
) рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ noEmitOnError
рдЪрд╛рд▓реВ рди рд╣реЛред
рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реЛрдЧрд╛ - рдпрджрд┐ рдЖрдкрдХреА рдкреБрд░рд╛рдиреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдХреЛрдИ рдирдИ рддреНрд░реБрдЯрд┐ рдереА, рддреЛ рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рджреЗрдЦреЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдж рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЕрдм рдЕрдк-рдЯреВ-рдбреЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред
рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, tsc -b
рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП noEmitOnError
рд╕рдХреНрд╖рдо рд╣реИред
рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдмрд┐рд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ ( .js
, .d.ts
, .d.ts.map
, рдЖрджрд┐) рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рд╕реНрд░реЛрдд рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдмрд╛рдж --force
рдмрд┐рд▓реНрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рд╕рдВрдЪрд╛рд▓рди рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╕реНрд░реЛрдд рдирд┐рдпрдВрддреНрд░рдг рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдФрд░ рджреВрд░рд╕реНрде рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рдмреАрдЪ рдЯрд╛рдЗрдорд╕реНрдЯрдореИрдк рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдПрдордПрд╕рдмрд┐рд▓реНрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рддреЛ рдЖрдк рдЬреЛрдбрд╝рдХрд░ рд╕рдХреНрд╖рдо рдмрд┐рд▓реНрдб рдореЛрдб рдЪрд╛рд▓реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
<TypeScriptBuildMode>true</TypeScriptBuildMode>
рдЖрдкрдХреА рдкреНрд░реЛрдЬ рдлрд╝рд╛рдЗрд▓ рдореЗрдВред рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рдлрд╛рдИ рдХреЛ рднреА рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ tsconfig.json
/ -p
, рдореМрдЬреВрджрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдгреЛрдВ рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЖрдкрдХреА tsconfig рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреБрдЫ рдЯреАрдореЛрдВ рдиреЗ рдПрдордПрд╕рдмрд┐рд▓реНрдб-рдЖрдзрд╛рд░рд┐рдд рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рд╕реЗрдЯ рдЕрдк рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ tsconfig рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЧреНрд░рд╛рдлрд╝ рдСрд░реНрдбрд░рд┐рдВрдЧ рд╣реИ рдЬреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдРрд╕рд╛ рд╣реИ, рддреЛ рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╕рд╛рде msbuild
рд╕рд╛рде tsc -p
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ; рдпреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд▓ рд╣реИрдВред
рдЕрдзрд┐рдХ tsconfig.json
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдЕрдкрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред
рдЗрд╕ рддрд░рд╣ рдЖрдк рдПрдХрд╛рдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдПрдХ "рд╕рдорд╛рдзрд╛рди" tsconfig.json
рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреА рд╕рднреА рд▓реАрдл-рдиреЛрдб рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╕ references
рд╣реИред
рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдкреЛ рдореЗрдВ рд╣рдо рд╕рднреА рдПрдВрдбрдкреЙрдЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ tsc -b src
рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рднреА рд╕рдмрдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ src/tsconfig.json
рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 3.0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ tsconfig.json
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ reference
рд╣реИ, рддреЛ рдЕрдм рдЦрд╛рд▓реА files
рд╕рд░рдгреА рд╣реЛрдиреЗ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред
рдЖрдк рдЗрди рдкреИрдЯрд░реНрди рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдкреЛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - src/tsconfig_base.json
, src/tsconfig.json
, рдФрд░ src/tsc/tsconfig.json
рдкреНрд░рдореБрдЦ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рд╛рдкреЗрдХреНрд╖ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реЗрдкреЛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдореВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрд╕ рдПрдХ tsconfig.json
рдлрд╝рд╛рдЗрд▓ рд░рдЦреЗрдВ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдЗрдЪреНрдЫрд┐рдд рд▓реЗрдпрд░рд┐рдВрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ reference
s рдЬреЛрдбрд╝реЗрдВред
рдЖрдкрдХреЛ рдпрд╛ рддреЛ outDir
рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕реНрдкрд╖реНрдЯ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ rootDir
рдХреЛ рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдЯ рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
outFile
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рд▓реЗрдЖрдЙрдЯ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдЙрддрдирд╛ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред
рдзреНрдпрд╛рди рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЖрдо рддреМрд░ рдкрд░ "рдЕрдВрддрд┐рдо" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рддрдХ prepend
рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ - рдЗрд╕рд╕реЗ рдмрд┐рд▓реНрдб рд╕рдордп рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ рдФрд░ рдХрд┐рд╕реА рднреА рдмрд┐рд▓реНрдб рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ I/O рдХреА рдорд╛рддреНрд░рд╛ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреАред
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдкреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдВрджрд░реНрдн рд╣реИ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ "рд▓рд╛рдЗрдмреНрд░реЗрд░реА" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рдХреБрдЫ "рдПрдВрдбрдкреЙрдЗрдВрдЯ" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВ; "рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ" рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдЫреЛрдЯрд╛ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЙрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреА рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
TODO: рдЕрдзрд┐рдХ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд╢ рдФрд░ рд▓рд░реНрди рдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбрд▓ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдЕрдВрдд рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ
#25164 . рдкрд░ рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ
@RyanCavanaugh рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦрди, рдФрд░ рдЙрддреНрдХреГрд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛, рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдирд╛ рд╡рд╛рдХрдИ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, espред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдк-рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╣рдорд╛рд░реА рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рджрд┐рди рдмрд┐рддрд╛рдПред
рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдиреЛрдЯ рд╣реИрдВ:
gulp watch
рдФрд░ tsc -b -w
рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?@vvs a monorepo рдЖрдорддреМрд░ рдкрд░ рд░рд╢ рдпрд╛ рд▓рд░реНрди рдЬреИрд╕реЗ рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд NPM рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ
рдпрджрд┐ рдЖрдк рдЧрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдЬреЛ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдордЭрддрд╛ рд╣реЛред @rbuckton рдиреЗ рдпрд╣рд╛рдВ рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдЧрд▓реНрдкрдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ; рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЗрд╕ рдмрд╛рдд рдХрд╛ рд╡рдЬрди рдХрд░ рд╕рдХреЗ рдХрд┐ рд╡рд╣рд╛рдВ рдХреМрди рд╕реЗ рдЕрдЪреНрдЫреЗ рдкреИрдЯрд░реНрди рджрд┐рдЦрддреЗ рд╣реИрдВ
@RyanCavanaugh рдпрд╣ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд▓рд░реНрди рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдореЗрдВ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ :)
@RyanCavanaugh рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд░реНрди рдореЛрдиреЛрд░реЗрдкреЛ рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБред
рдЖрдкрдХреЗ рд▓реЗрдЦрди рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдЕрд╕реНрдкрд╖реНрдЯ рдмрд╛рдд prepend
рд╡рд┐рдХрд▓реНрдк рдереАред рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЖрдк рдХрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдХрдорд╛рд▓ рдХрд╛ рд╣реИ! рдореИрдВ ts-loader рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ LanguageServiceHost
/ WatchHost
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ?
(рдореЗрд░реЗ рдорддрд▓рдм рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП https://github.com/TypeStrong/ts-loader/blob/master/src/servicesHost.ts рджреЗрдЦреЗрдВред)
рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╕рднреА рдорд╛рд░реНрдЧрджрд░реНрд╢рди / рдЬрдирд╕рдВрдкрд░реНрдХ рдХреГрддрдЬреНрдЮрддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ! рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗрдмрдкреИрдХ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ ts-loader рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рдмреЗрд╢рдХ рдЕрдЧрд░ рдпрд╣ "рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рддреЛ рдпрд╣ рдФрд░ рднреА рдмреЗрд╣рддрд░ рд╣реИ: рдореБрд╕реНрдХрд╛рди:
рдорд╣рд╛рди рдХрд╛рдо!
@yortus @EisenbergEffect рдореИрдВрдиреЗ https://github.com/RyanCavanaugh/learn-a рдкрд░ рдПрдХ рдирдореВрдирд╛ рд▓рд░реНрди рд░реЗрдкреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ README рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдард╛рдП рдЧрдП рдХрджрдореЛрдВ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ tsc -b X
рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рд╕рдм рдХреБрдЫ (рдПрдХреНрд╕ рдФрд░ рдЗрд╕рдХреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдФрд░ рдЯреНрд░рд╛рдВрдЬрд┐рдЯрд┐рд╡ рдирд┐рд░реНрднрд░рддрд╛) рдЕрджреНрдпрддрд┐рдд рд╣реИ? рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рд╣рдо рдмрд┐рдирд╛ рд╕рдВрджрд░реНрдн рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП -b
рдзреНрд╡рдЬ рдХреЗ рдмрд┐рдирд╛ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? (рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЛрдг рдирд┐рд░реНрднрд░рддрд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ)
рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдореИрдВ рдПрдХ Lerna рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдореЛрдиреЛ рд░реЗрдкреЛ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдУрд░ рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
{
"рд▓рд░реНрди": "2.11.0",
"рдкреИрдХреЗрдЬ": [
"рдкреИрдХреЗрдЬ/рдШрдЯрдХ/ ","рдкреИрдХреЗрдЬ/рдкреБрд╕реНрддрдХрд╛рд▓рдп/ ",
"рдкреИрдХреЗрдЬ/рдврд╛рдВрдЪреЗ/ ","рдкреИрдХреЗрдЬ/рдЕрдиреБрдкреНрд░рдпреЛрдЧ/ ",
"рдкреИрдХреЗрдЬ/рдЙрдкрдХрд░рдг/*"
],
"рд╕рдВрд╕реНрдХрд░рдг": "0.0.0"
}
рддреЛ рдпрд╣ typescript@next
?
рдореИрдВ рдЕрдкрдиреЗ рдпрд╛рд░реНрди рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рд░реЗрдкреЛ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛ред рд╣рдореЗрдВ рдХреБрдЫ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП nohoist
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЕрднреА рддрдХ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
@RyanCavanaugh рдореИрдВрдиреЗ рдЖрдЬ рд░рд╛рдд рдЯреЗрд╕реНрдЯ рд░рди рдХреЗ рд▓рд┐рдП рд░реЗрдкреЛ рд▓рд┐рдпрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рд░реЗрдкреЛ рдкрд░ рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ред рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЬрд▓реНрдж рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВред
рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк! рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реА рдХрдВрдкрдиреА рдореЗрдВ, рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡реЙрдЪ рдореЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдордЯреАрдПрд╕рд╕реА рдирд╛рдордХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ 5 рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╣реА рд░реЗрдкреЛ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рддрд░рд╣ рдЕрд▓рдЧ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ; ECMA рд▓рдХреНрд╖реНрдпреАрдХрд░рдг (es5, es6), рдкреНрд░рдХрд╛рд░ (рдиреЛрдб, рдЬреЗрд╕реНрдЯ, DOM рдЖрджрд┐), рдПрдорд┐рдЯ (рдХреБрдЫ рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕реНрд╡рдпрдВ рдХреЛ js рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ)ред рд╡реЗ рд╕рднреА рдПрдХ рдЪреАрдЬ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╣ рд╣реИ tslint рдкреНрд▓рдЧрдЗрди , рдмрд╛рдХреА рд╕рднреА рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдЯреВрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рдж tslint рднреА рдЪрд▓рд╛рддрд╛ рд╣реИ (рдкреНрд░рддрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рдЕрдЧрд░ рдХреЛрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯ tslint рд╕реЗ рдкрд╣рд▓реЗ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред
рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд╕рд╛рде рдореЗрд░реА рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддреЗ рдХрд┐ рдХреМрди рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рдХрд┐рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддреА рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдЬреЛ рджреЛрдиреЛрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рджреЛ рдмрд╛рд░ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ :)
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд░реНрди рдореЛрдиреЛрд░реЗрдкреЛ рдХреЗ рд╕рд╛рде рдирдпрд╛ --build
рдореЛрдб рдЖрдЬрд╝рдорд╛рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 17 рдЕрдиреНрдпреЛрдиреНрдпрд╛рд╢реНрд░рд┐рдд рдкреИрдХреЗрдЬ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рд╣реИред
рдореБрдЭреЗ рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬрд┐рдирдХрд╛ рдореИрдВ рдиреАрдЪреЗ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ TS рдЯреАрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЛ рдЙрдирдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ --build
рдореЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред
tsc --build
рдореЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдореБрдЭреЗ рдпрд╣ рд╕рдВрджреЗрд╢ рд╣рд░ рдмрд┐рд▓реНрдб рдкрд░ рд╣рд░ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓реЗ рдЬрд╛рдиреЗ рдкрд░ рднреА рд╣рд░ рдмрд┐рд▓реНрдб рдПрдХ рдкреВрд░реНрдг рд░реА-рдмрд┐рд▓реНрдб рдмрди рдЧрдпрд╛ред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ @RyanCavanaugh рдиреЗ рдЗрд╕реЗ #25281 рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдареАрдХ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк 20180628
рдпрд╛ рдмрд╛рдж рдореЗрдВ рд░рд╛рдд рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЕрдм рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореБрджреНрджреЗ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдХрдо рд╕реЗ рдХрдо 20180628
рд░рд╛рдд рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: #25337 рдкрд░ рд╕реВрдЪрдирд╛ рджреАред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, @RyanCavanaugh рдХреЗ learn-a
рдирдореВрдирд╛ рд░реЗрдкреЛ рдХреЛ рдЙрдирдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реЗрдЯ tsc -b packages --verbose
рдЪрд▓рд╛рдПрдВред рдЕрдм рд▓рд╛рдЗрди 1 рдХреЛ pkg1/src/index.ts
рд╕реЗ import {} from "./foo";
рдореЗрдВ рдмрджрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реЗрд╡ рдХрд░реЗрдВред tsc -b packages --verbose
рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБред pkg2
рд▓рд┐рдП рдмрд┐рд▓реНрдб рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рднрд▓реЗ рд╣реА pkg1
рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдЬреЛ pkg2
рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдЕрдм рдЖрдк pkg2/src/index.ts
рдореЗрдВ рдПрдХ рд▓рд╛рд▓ рд░рдВрдЧ рдХреА рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред tsc -b packages --force
рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ рдФрд░ рдмрд┐рд▓реНрдб рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореБрджреНрджреЗ рдЗрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП --force
рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВред
.d.ts
рдлрд╛рдЗрд▓реЗрдВ 'рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░' рдХреЗ рдХрд╛рд░рдг рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдкреИрдХреЗрдЬ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВрд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: #25338 рдкрд░ рд╕реВрдЪрдирд╛ рджреАред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, @RyanCavanaugh рдХреЗ learn-a
рдирдореВрдирд╛ рд░реЗрдкреЛ рдХреЛ рдЙрдирдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реЗрдЯ lerna add @types/node
рдЪрд▓рд╛рдПрдБред рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tsc -b packages --force
рдЪрд▓рд╛рдПрдБ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдареАрдХ рд╣реИред рдЕрдм рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ pkg1/src/index.ts
:
// CASE1 - no build errors in pkg1, but 'duplicate identifier' build errors in pkg2
// import {parse} from 'url';
// export const bar = () => parse('bar');
// CASE2 - no build errors in pkg1 or in downstream packages
// import {parse, UrlWithStringQuery} from 'url';
// export const bar = (): UrlWithStringQuery => parse('bar');
// CASE3 - no build errors in pkg1 or in downstream packages
// export declare const bar: () => import("url").UrlWithStringQuery;
// CASE4 - no build errors in pkg1, but 'duplicate identifier' build errors in pkg2
// import {parse} from 'url';
// type UrlWithStringQuery = import("url").UrlWithStringQuery;
// export const bar = (): UrlWithStringQuery => parse('bar');
рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ рдХреЗрд╕ рдХреЛ рдЕрдирдХрдореНрдореЗрдВрдЯ рдХрд░реЗрдВ рдФрд░ tsc -b packages --force
рдЪрд▓рд╛рдПрдВред рдХреЗрд╕ 1 рдФрд░ 4 рдХреЗ рдХрд╛рд░рдг pkg2
рдореЗрдВ рдмрд┐рд▓реНрдб рдПрд░рд░ рдХреА рдмрд╛рдврд╝ рдЖ рдЬрд╛рддреА рд╣реИред рдорд╛рдорд▓реЛрдВ 2 рдФрд░ 3 рдХреЗ рд╕рд╛рде, рдХреЛрдИ рдмрд┐рд▓реНрдб рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВред рдорд╛рдорд▓реЛрдВ 1 рдФрд░ 4 рдХреЗ рд╕рд╛рде рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдЙрддреНрдкрдиреНрди pkg1/lib/index.d.ts
рдореЗрдВ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ:
/// <reference path="../node_modules/@types/node/index.d.ts" />
рдХреЗрд╕ 2 рдФрд░ 3 рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЬрдм pkg2
1 рдФрд░ 4 рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╛рд╕реНрддреЛрдВ рдкрд░ @types/node
рдШреЛрд╖рдгрд╛рдУрдВ рдХреА рджреЛ рд╕рдорд╛рди рдкреНрд░рддрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ 'рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛' рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВред
рд╢рд╛рдпрдж рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╕ 2 рдФрд░ 3 рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд╛рдлреА рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧрддрд╛ рд╣реИред рдЗрди 4 рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП pkg1
рдореЗрдВ рдХреЛрдИ рдмрд┐рд▓реНрдб рддреНрд░реБрдЯрд┐ рдпрд╛ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдмрд┐рд▓реНрдб рд╡реНрдпрд╡рд╣рд╛рд░ рдирд┐рд░реНрдпрд╛рдд рдХреА рдЧрдИ рдШреЛрд╖рдгрд╛рдУрдВ рдХреА рд╕рдЯреАрдХ рд╢реИрд▓реА рдХреЗ рдкреНрд░рддрд┐ рдмрд╣реБрдд рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╛ рддреЛ (рдП) pkg1
рдорд╛рдорд▓реЛрдВ 1 рдФрд░ 4 рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╛ (рдмреА) рд╕рднреА рдЪрд╛рд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╛рди рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдмрд┐рд▓реНрдб рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ (рд╕реА) рдЯреАрдПрд╕ рдЯреАрдо рд╕реЗ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВред
.d.ts
рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ import
рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВрд╣рдорд╛рд░реЗ 17 рдкреИрдХреЗрдЬ рдореЛрдиреЛрд░реЗрдкреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рд▓реНрдб рдореЛрдб рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдЙрддреНрдкрдиреНрди .d.ts
рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ import
рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕рд╛рдкреЗрдХреНрд╖ рдкрдереЛрдВ рдХреЗ рдХрд╛рд░рдг рдХрдИ рдмрд┐рд▓реНрдб рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЕрдВрдд рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдЙрддреНрдерд╛рдкрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛ред рдпрд╣реА рд╣реИ, рдпрд╛рд░реНрди рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╕рднреА рд╕реНрдерд╛рдкрд┐рдд рдореЙрдбреНрдпреВрд▓ рдореЛрдиреЛрд░реЗрдкреЛ-рд░реВрдЯ node_modules
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╣рд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдореЛрдиреЛрд░реЗрдкреЛ рдореЗрдВ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рдореНрд▓рд┐рдВрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдореИрдВрдиреЗ packages
рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдиреЛрд░реЗрдкреЛ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ lerna.json
, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг lerna
рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЧреИрд░-рдЙрддреНрдерд╛рдкрди рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рд╡реИрд╕реЗ рднреА рдпрд╣ рдПрдХ рдмреЗрд╣рддрд░/рд╕реБрд░рдХреНрд╖рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдзреАрдорд╛ рд╣реИред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЯреАрдПрд╕ рдореЙрдбреНрдпреВрд▓-рд╣реЛрд╕реНрдЯреЗрдб рд╕реЗрдЯрдЕрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЬрд┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рд░реЗрдкреНрд░реЛ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рддреЛ рдореИрдВ рдПрдХ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдХреБрдЫ рдмрд┐рд▓реНрдб рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп packages
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (tsconfig рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдФрд░ рд╢реАрд░реНрд╖-рд╕реНрддрд░ node_modules
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ( import
рдЕрдиреБрд╕рд╛рд░) рджреЛрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред .d.ts
рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ)ред рдпрд╣ рдХрднреА-рдХрднреА рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдЕрджреНрд╡рд┐рддреАрдп рдкреНрд░рддреАрдХреЛрдВ рдЬреИрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
рд▓рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЛрдиреЛрд░реЗрдкреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ "packages": ["packages/*"]
рдЬреИрд╕реЗ рдХреБрдЫ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ lerna.json
ред Lerna рдЧреНрд▓реЛрдмрд╕реНрдЯрд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдХреЗ рд╕рдЯреАрдХ рдкреИрдХреЗрдЬ рд╕реВрдЪреА рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЗ package.json
рдореЗрдВ рдШреЛрд╖рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рджреЗрдЦрдХрд░ рд╕рдЯреАрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЧреНрд░рд╛рдл рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреА рдорд░реНрдЬреА рд╕реЗ рдкреИрдХреЗрдЬ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЬреЛрдбрд╝ рдФрд░ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ lerna
рдЗрд╕рдХреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЛ рдЫреВрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИред
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ --build
рдореЛрдб рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдорд╛рд░реЛрд╣ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЧреНрд▓реЛрдм рдкреИрдЯрд░реНрди рдХреЛ рдкрд╣рдЪрд╛рдирд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реВрдЪреАрдмрджреНрдз рдФрд░ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП packages/tsconfig.json
) @RyanCavanaugh рдХреЗ learn-a
рдирдореВрдирд╛ рд░реЗрдкреЛ рдореЗрдВред рдмрд┐рд▓реНрдб рдореЛрдб package.json
рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЛ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕рдХреА package.json
рдлрд╝рд╛рдЗрд▓ ( "dependencies"
рддрд╣рдд) рдФрд░ рд╕рд╛рде рд╣реА рджреЛрдиреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ tsconfig.json
рдлрд╝рд╛рдЗрд▓ рд╣реИ ( "references"
рддрд╣рдд)ред
рдпрд╣ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЕрд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ lerna's
рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд░рд┐рдЧрдорд╛рд░реЛрд▓ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд▓рдЧрд╛ред
tsc
рд╡реИрд╢реНрд╡рд┐рдХ рдореЙрдбреНрдпреВрд▓ рд╕рдВрд╡рд░реНрджреНрдзрди рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: #25339 рдкрд░ рд╕реВрдЪрдирд╛ рджреАред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, @RyanCavanaugh рдХреЗ learn-a
рдирдореВрдирд╛ рд░реЗрдкреЛ рдХреЛ рдЙрдирдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реЗрдЯ lerna add @types/multer
рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП multer
рддреАрдиреЛрдВ рд╕рдВрдХреБрд▓ рдХреЛ typingsред рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tsc -b packages --force
рдЪрд▓рд╛рдПрдБ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдареАрдХ рд╣реИред рдЕрдм рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдХреЛ pkg1/src/index.ts
:
export {Options} from 'multer';
tsc -b packages --force
рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБред рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдП рдЧрдП рджрд╛рд╡реЗ рдХреЗ рдХрд╛рд░рдг рд╕рдВрдХрд▓рдХ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдФрд░ рдЕрднрд┐рдХрдерди рдХреЛ рджреЗрдЦрд╛, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ Express
рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрд╡рд░реНрджреНрдзрди рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рд╣реИред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @yortus ред рднрд░реЛрд╕рд╛ рдХрд░реЗрдВ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВред 3 рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ https://github.com/Microsoft/TypeScript/issues/25278 рд╣реИред
4 рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдЙрддреНрдерд╛рдкрди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдБред рдХреНрдпрд╛ рдЖрдк рд╡рд┐рд╕реНрддреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░/рдпрд╛ рдПрдХ рд░реЗрдкреНрд░реЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
@mhegazy рдХрдИ рдЬреЛ рд▓рд░реНрди рдФрд░ рдпрд╛рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░реЛрдВ (рд╕реНрд╡рдпрдВ рд╕рд╣рд┐рдд) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ: https://yarnpkg.com/lang/en/docs/workspaces/
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╛рд░реНрди рд╡рд░реНрдХрд╕реНрдкреЗрд╕, рд▓рд░реНрди, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд tsconfigs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдЖрдзрд╛рд░ tsconfig paths
рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯреЗрдб рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ root/node_modules
ред рдЬрдм рдореИрдВ yarn
рдФрд░ monorepo
рд╕реБрдирддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ workspaces
рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдмрд╣реБрдд рд╣реА рдЙрджреНрджреЗрд╢реНрдп рд╣реИ - рдЙрдкрдпреЛрдЧ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдФрд░ рджреЛрд╣рд░рд╛рд╡ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдореЗрд░реЗ рдЖрдзрд╛рд░ tsconfig рдореЗрдВ рдШреЛрд╖рд┐рдд рдореЗрд░реЗ рд▓рдВрдмреЗ/рджрд░реНрджрдирд╛рдХ paths
рдХреЛ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджреЗрдЧрд╛ред
рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдореВрд▓ monorepo tsconfig рдХрд╛ рдПрдХ рдирдореВрдирд╛ рд╣реИ (рдпрджрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдорджрдж рдХрд╛ рд╣реИ):
{
"extends": "./packages/build/tsconfig.base.json",
"compilerOptions": {
"baseUrl": "./packages",
"paths": {
"@alienfast/build/*": ["./build/src/*"],
"@alienfast/common-node/*": ["./common-node/src/*"],
"@alienfast/common/*": ["./common/src/*"],
"@alienfast/concepts/*": ["./concepts/src/*"],
"@alienfast/faas/*": ["./faas/src/*"],
"@alienfast/math/*": ["./math/src/*"],
"@alienfast/notifications/*": ["./notifications/src/*"],
"@alienfast/ui/*": ["./ui/src/*"],
"@alienfast/build": ["./build/src"],
"@alienfast/common-node": ["./common-node/src"],
"@alienfast/common": ["./common/src"],
"@alienfast/concepts": ["./concepts/src"],
"@alienfast/faas": ["./faas/src"],
"@alienfast/math": ["./math/src"],
"@alienfast/notifications": ["./notifications/src"],
"@alienfast/ui": ["./ui/src"],
}
},
"include": ["./typings/**/*", "./packages/*/src/**/*"],
"exclude": ["node_modules", "./packages/*/node_modules"]
}
рдореИрдВ рдПрдХ рдирдореВрдиреЗ рдХреЗ рд▓рд┐рдП рдлреЛрд░реНрдХрд┐рдВрдЧ рдкрд░ рдПрдХ рд╢реЙрдЯ рд▓реВрдВрдЧрд╛:
https://github.com/RyanCavanaugh/learn-a
рдпрд╛рд░реНрди рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде @RyanCavanaugh рдХреЗ рд░реЗрдкреЛ рдореЗрдВ рд╡рд┐рд▓рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреИрд░-рд╡рд┐рд▓рдп рдкреАрдЖрд░ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
https://github.com/RyanCavanaugh/learn-a/pull/3/files
рд╣рдордиреЗ рдЬреБрдкрд┐рдЯрд░рд▓реИрдм рдореЗрдВ рд▓рд░реНрди рдФрд░ рдпрд╛рд░реНрди рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдЙрддреНрдерд╛рдкрди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣ рд╣рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдмреАрдЪ рд╣рдорд╛рд░реА рд╕реНрдерд╛рдкрд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рд░реВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдореМрдЬреВрдж рд╣реЛрддреЗ рд╣реИрдВред
рдореИрдВ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдмреАрдЪ link
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛рдл рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗрдВ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗрдВ)ред
рдКрдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореЙрдбреНрдпреВрд▓ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд░реВрдЯ node_modules
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддрд╛ рд╣реИ рдХрд┐ рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╣рдореЗрд╢рд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЯреНрд░реА рдХреЛ рдкрд╛рд░ рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рднреА node_modules
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрдм рддрдХ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЙрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддрд╛ред рдЖрдкрдХреЗ рдореЛрдиреЛрд░реЗрдкреЛ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рддрдм рдЗрд╕ рд░реВрдЯ node_modules
рдореЗрдВ рд╕рд┐рдорд▓рд┐рдВрдХ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╛рд░реНрди рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рд╢рд╛рдпрдж рдЗрд╕реЗ рдореБрдЭрд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрд╛рддрд╛ рд╣реИред
рдЙрддреНрдерд╛рдкрди рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдкреИрдХреЗрдЬ рдХреЗ рдмреЗрдореЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ рддреЛ рдЙрдиреНрд╣реЗрдВ рдлрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред рд╕рд╛рде рд╣реА, рдХрдИ рдореМрдЬреВрджрд╛ рдЙрдкрдХрд░рдг рдЙрддреНрдерд╛рдкрди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ node_modules
рдХрд╣рд╛рдВ рд╣реЛрдЧрд╛ рдпрд╛ рд╡реЗ рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдПрдХ nohoist
рд╕реЗрдЯрд┐рдВрдЧ рд╣реИ рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЙрддреНрдерд╛рдкрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреА рд╣реИред
рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд┐рдЫрд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЫрдард╛ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рд╛ рд╣реИред tsc
рд╡рд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
@mhegazy рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдЗрдЯрдо 3 # 25278 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред #25278 рдЕрдорд╛рдиреНрдп рдШреЛрд╖рдгрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдореЗрд░реА рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдШреЛрд╖рдгрд╛ рдлрд╛рдЗрд▓реЗрдВ рд╡рд╛рдХреНрдп-рд░рдЪрдирд╛ рдФрд░ рд╢рдмреНрджрд╛рд░реНрде рд░реВрдк рд╕реЗ рдорд╛рдиреНрдп рдереАрдВ, рд▓реЗрдХрд┐рди рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдиреЛрдб рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рджреЛ рдкреНрд░рддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 'рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░' рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реБрдИрдВред
рдКрдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореЙрдбреНрдпреВрд▓ рдЙрддреНрдерд╛рдкрди рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд░реВрдЯ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддрд╛ рд╣реИ рдХрд┐ рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╣рдореЗрд╢рд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЯреНрд░реА рдХреЛ рдкрд╛рд░ рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рднреА рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдкрд╛рддрд╛ред
рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдЗрд╕ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рд╣реИ, рдХрд┐ рдпрд╣ "рдкреНрд░реЗрдд рдирд┐рд░реНрднрд░рддрд╛" рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХреА package.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрдм рдЖрдк рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрд░реЗрд╢рд╛рдиреА рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ (1) рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рдЬреЛ рдкрд░реАрдХреНрд╖рдг/рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, рдпрд╛ (2) рдирд┐рд░реНрднрд░рддрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд╛рдпрдм рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдПрдХ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдлрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВред рдкреАрдПрдирдкреАрдПрдо рдФрд░ рд░рд╢ рджреЛрдиреЛрдВ рдХреЗ рдкрд╛рд╕ рдкреНрд░реЗрдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред
рдореЗрд░реЗ рдкрд╛рд╕ tsc --build
рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди рд╣реИ: рдХреНрдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдореЛрдиреЛрд░реЗрдкреЛ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдиреЗ рдХреА рдорд╛рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ? рдЖрдо рддреМрд░ рдкрд░ рдЯреВрд▓рдЪреЗрди рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреВрд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рд╕рд╛рдорд╛рди:
рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдЬреИрд╕реЗ рдХрд┐ рдЧрд▓реНрдк рдпрд╛ рд╡реЗрдмрдкреИрдХ рдЗрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдмреАрдЪ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдХрджрдо рд╣реИред рдХрднреА-рдХрднреА рдПрдХ рджреНрд╡рд┐рддреАрдпрдХ рдЯреВрд▓ рдмрд┐рд▓реНрдб рдХреЛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рднреА рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ Jest+ts-jest jest --watch
ред
рдХреНрдпрд╛ tsc
рд▓рдХреНрд╖реНрдп рдЗрди рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╣реИ? рдФрд░ рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдирд┐рд░реНрднрд░рддрд╛ рдЧреНрд░рд╛рдл рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рдВрдкрд░рд┐рдХ рдирд┐рд░реНрдорд╛рдг рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмрд╛рд░-рдмрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рдЯреАрдПрд╕рд╕реА рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдВ (рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж)?
рдпрд╛, рдпрджрд┐ рдбрд┐рдЬрд╝рд╛рдЗрди рдПрдХ рд╣реА рдкрд╛рд╕ рдореЗрдВ рдкреВрд░реЗ рдореЛрдиреЛрд░реЗрдкреЛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реИ (рдЬрдмрдХрд┐ рдЖрдЬ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдЕрд▓рдЧ NodeJs рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВ), рдореИрдВ рдпрд╣ рднреА рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЕрдиреНрдп рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдХреИрд╕реЗ рднрд╛рдЧ рд▓реЗрдВрдЧреЗ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рд╣рдо рд╡реЗрдмрдкреИрдХ рдЪрд▓рд╛рдПрдВрдЧреЗ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ? (рдЕрддреАрдд рдореЗрдВ рдЬреЛ рд╕реНрдореГрддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЧрдП рдереЗред) рдХреНрдпрд╛ рд╣рдо рдмрд╣реБ-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд░реВрдкрддрд╛ рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЦреЛ рджреЗрдВрдЧреЗ?
рдпреЗ рдЖрд▓реЛрдЪрдирд╛рдПрдБ BTW рдирд╣реАрдВ рд╣реИрдВред рдореИрдВ рд╕рд┐рд░реНрдл рдмрдбрд╝реА рддрд╕реНрд╡реАрд░ рдФрд░ рдЗрдЪреНрдЫрд┐рдд рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
@pgonzal рдареАрдХ рд╣реИ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЛрдиреЛрд░реЗрдкреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЧреИрд░-tsc рднрд╛рдЧ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд▓рд░реНрди рдореЛрдиреЛрд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдкрдирд╛рдпрд╛:
prebuild
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░/рдпрд╛ рдПрдХ postbuild
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдкрдиреЗ package.json
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрдирдореЗрдВ рдмрд┐рд▓реНрдб рдХреЗ рдЧреИрд░-tsc рдкрд╣рд▓реВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВредpackage.json
, рдпреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ:
"prebuild": "lerna run prebuild",
"build": "tsc --build monorepo.tsconfig.json --verbose",
"postbuild": "lerna run postbuild",
yarn build
рдЪрд▓рд╛рдирд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП prebuild
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдпрд╣ tsc --build
рдЪрд░рдг рдЪрд▓рд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдпрд╣ рд╕рднреА postbuild
рдЪрд▓рд╛рддрд╛ рд╣реИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдПрдирдкреАрдПрдо рдФрд░ рдпрд╛рд░реНрди рджреЛрдиреЛрдВ рдореЗрдВ рд╕рдореНрдореЗрд▓рди рджреНрд╡рд╛рд░рд╛, npm run foo
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд▓рдЧрднрдЧ npm run prefoo && npm run foo && npm run postfoo
рдЬреИрд╕рд╛ рд╣реА рд╣реИред)рдЖрдк jest --watch
рдпрд╛ webpack-dev-server
рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдм рдХреЛрдИ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдХреНрдпрд╛ рдкреНрд░реАрдмрд┐рд▓реНрдб/рдкреЛрд╕реНрдЯрдмрд┐рд▓реНрдб рдЪрд░рдг рдлрд┐рд░ рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЗрд╕рдХрд╛ ts-node
рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣реЛрдВ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ? рд╣рдорд╛рд░реЗ рдХреБрдЫ рд╕рд╣рд╛рдпрдХ рдРрдкреНрд╕ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ "рд╕реАрдзреЗ" рдЪрд▓рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ "start": "ts-node ./src/app.ts"
рдпрд╛ "start:debug": "node -r ts-node/register --inspect-brk ./src/app.ts"
ред
#25355 рдкрд░ рдмрд┐рд▓реНрдб рдореЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реВрдЪрдирд╛ рджреАред
рдЕрдм рддрдХ рдХреА рд╕рднреА рдЕрдЪреНрдЫреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрди рд╕рднреА рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЪреАрдЬреЛрдВ рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдФрд░ рдЯрд╛рдпрд░реЛрдВ рдХреЛ рд▓рд╛рдд рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рд╛ред
@yortus рдкреБрдирдГ https://github.com/Microsoft/TypeScript/issues/3469#issuecomment -400439520
рдмрдврд╝рд┐рдпрд╛ рд▓реЗрдЦрди, рдЗрд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдзрдиреНрдпрд╡рд╛рдж. рдЖрдкрдХреЗ рдореБрджреНрджреЗ рдХреНрд░рдо рдореЗрдВ -
--build
AFAICT рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рддред рдпрд╣ рдПрдХ рдирдпрд╛ рдЕрднрд┐рдХрдерди рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ; рдирд╛рдерди рдХреА рдЬрд╛рдВрдЪlearn-a
рд░реЗрдкреЛ рдкрд░ рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП @rosskevin ! рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╣рдо рддреБрд▓рдирд╛ рдФрд░ рддреБрд▓рдирд╛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд╕рдХреЗрдВред
@pgonzal рдкреБрдирдГ https://github.com/Microsoft/TypeScript/issues/3469#issuecomment -401577442
рдореЗрд░реЗ рдкрд╛рд╕ tsc --build рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди рд╣реИ: рдХреНрдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдореЛрдиреЛрд░реЗрдкреЛ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд┐рдВрдЧ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдиреЗ рдХреА рдорд╛рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ?
рдорд╣рд╛рди рдкреНрд░рд╢реНрди; рдореИрдВ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдЙрддреНрддрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ: рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ ред
рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП tsc
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдЬ рдЦреБрд╢ рд╣реИрдВ, рддреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдмрд╣реБ-рднрд╛рдЧ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП tsc -b
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд▓ рдЦреБрд╢ рд░рд╣реЗрдВред рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП gulp
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдЬ рдЦреБрд╢ рд╣реИрдВ, рддреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдмрд╣реБ-рднрд╛рдЧ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП gulp
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд▓ рдЦреБрд╢ рд░рд╣реЗрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓ рдФрд░ рдкреНрд▓рдЧрдЗрди рд▓реЗрдЦрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ tsc -b
рднреА рдЙрдЬрд╛рдЧрд░ рдПрдкреАрдЖрдИ рдкрд░ рд╕рд┐рд░реНрдл рдПрдХ рдкрддрд▓рд╛ рдЖрд╡рд░рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреВрд▓ рд▓реЗрдЦрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЦреЗрд▓рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЙрдбрд▓ рдореЗрдВред
рд╡реНрдпрд╛рдкрдХ рд╕рдВрджрд░реНрдн рдпрд╣ рд╣реИ рдХрд┐ tsc -b
рднреА рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЕрд▓рдЧ рдЙрдкрдХрд░рдг/рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕ рдкрд░ рдХрд╛рдлреА рдордЬрдмреВрдд рдЖрдВрддрд░рд┐рдХ рдмрд╣рд╕ рд╣реБрдИ рдереА - рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдХрд╛рдо рд╣реИ рдФрд░ рд╣рдо рдирд╣реАрдВ рд╣реИрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрди рдЕрдк рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдПрдХ рд╣рд▓реНрдХреЗ рдХрд╛рд░реНрдп рдзрд╛рд╡рдХ рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде tsc
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдЙрд╕реА рдХрд╛рд░реНрдп рдзрд╛рд╡рдХ рдХреЗ рд╕рд╛рде tsc -b
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЕрдкрдиреА рдореМрдЬреВрджрд╛ рдмрд┐рд▓реНрдб рдЪреЗрди рдХреЛ рдЬрдЧрд╣ рдореЗрдВ рд░рдЦреЗред рдХреЗрд╡рд▓ рдЫреЛрдЯреЗ рдЯреНрд╡реАрдХреНрд╕ рдХреЗ рд╕рд╛рдеред
@borekb рдкреБрдирдГ https://github.com/Microsoft/TypeScript/issues/3469#issuecomment -401593804
рдХреНрдпрд╛ рдЗрд╕рдХрд╛ ts-рдиреЛрдб рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣реЛрдВ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ? рд╣рдорд╛рд░реЗ рдХреБрдЫ рд╕рд╣рд╛рдпрдХ рдРрдкреНрд╕ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ "рд╕реАрдзреЗ" рдЪрд▓рддреЗ рд╣реИрдВ
рдПрдХрд▓-рдлрд╝рд╛рдЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдкрд░реЛрдХреНрд╖ рд░реВрдк рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд╢реВрдиреНрдп рдкреНрд░рднрд╛рд╡ рд╣реЛрддрд╛ рд╣реИред
@EisenbergEffect рдХреЗ рдкрд╛рд╕ рдХреНрд░реЙрд╕-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо рдмрджрд▓рдиреЗ рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ learn-a
рд░реЗрдкреЛ рдореЗрдВ рдХреБрдЫ рдкреНрд░рд╢реНрди рдереЗред рдпрд╣рд╛рдВ рдмрдбрд╝рд╛ рдЦреБрд▓рд╛ рдкреНрд░рд╢реНрди рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ 3.0 рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рдкрд╛рдПрдВрдЧреЗ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдХреНрд░реЙрд╕-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ "рдмрд╕ рдХрд╛рдо рдХрд░реЗрдЧрд╛", рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдЕрдзреАрди рдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рднреА рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдгрд╛рдпрдХ рд░реВрдк рд╕реЗ рдвреВрдВрдврдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реИ - рдпрд╣ рдЕрдиреНрдп рдХреА рддрд▓рд╛рд╢ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ "рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рдпрд╛рд╕" рд╣реЛрдЧрд╛ред рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ.
рдЕрдЧрд░ рд╣рдореЗрдВ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдХреНрд░реЙрд╕-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рд╣реИ+3.0 рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╣реИ, рддреЛ рд╣рдо рдХреЗрд╡рд▓ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдмреНрд▓реЙрдХ рдХрд░реЗрдВрдЧреЗ, рдЬрдм рдирд╛рдорд┐рдд рдкреНрд░рддреАрдХ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА .d.ts рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛрдЧрд╛ - рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдЧреА рдмрд╣реБрдд рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреНрдпреЛрдВрдХрд┐ .d.ts рдлрд╝рд╛рдЗрд▓ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рдж рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрди рджрд┐рдиреЛрдВ рдХреЗ рдмреАрдЪ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдк рд╕реНрдерд╛рдиреАрдп рдирд╛рдо рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЬрдм рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдШреЛрд╖рдгрд╛ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЧреЛ рдЯреВ рдбреЗрдлрд┐рдирд┐рд╢рди рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдпреЗ рдЖрдЬ рд╡реАрдПрд╕ рдХреЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдЗрди рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .d.ts.map рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ( declarationMap
рдЪрд╛рд▓реВ рдХрд░реЗрдВ)ред рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рддрд┐-рд╕реБрд╡рд┐рдзрд╛ рдХрд╛рд░реНрдп рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдПрдХ рдмрдЧ рд▓реЙрдЧ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдХреЛ рдпрд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЦреБрд▓реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдЗрд╕ рд╕рдордп рдЯреНрд░реИрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
learn-a
рд░реЗрдкреЛ рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ yarn
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдЬреЛ pnpm
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдЬреЛ рдлрд╣рд░рд╛рдП рдЧрдП рдореЛрдб рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИрдкреНрд░рд╢реНрди рдЦреЛрд▓реЗрдВ
package.json
s рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ #25376.d.ts.map
рдЙрддреНрд╕рд░реНрдЬрди composite
рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд░реЛрдХреНрд╖ рд░реВрдк рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?@RyanCavanaugh рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП
рдЦреБрд▓реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдЗрд╕ рд╕рдордп рдЯреНрд░реИрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рд╣рдордиреЗ рдПрд▓рдПрд╕ рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдерд╛рди рд╕реЗ рдЕрд▓рдЧ рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреИрд╢ рд╣реЛрдиреЗ рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ (рдЖрдЬ, рдЬрдм рддрдХ рдЖрдк рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реАрдорд╛рдУрдВ рдореЗрдВ рдкреНрд░рдЪрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ), stripInternal
, рдФрд░ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ (рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдорд╛рдг рдЖрдЙрдЯрдкреБрдЯ рдЬрдЧрд╣ рдореЗрдВ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдПрд▓рдПрд╕ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ)ред
рдЧреВрдВрдЧрд╛ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рдЪреВрдВрдХрд┐ рдпрд╣ рд░реЛрдбрдореИрдк рдореЗрдВ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдХреИрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реВрдВ?
@ рдПрд▓реЗрдХреНрд╕реА-рдмрд╛рдпрдХреЛрд╡ рдЖрдк рдЗрд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ @ рдЕрдЧрд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдпрд╛рд░реНрди рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рд╕рдВрдЪрд╛рд▓рд┐рдд рдореЛрдиреЛрд░реЗрдкреЛ рдкрд░ рдЖрдЬрдорд╛рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдмрд╛рдд рдореИрдВрдиреЗ рдиреЛрдЯрд┐рд╕ рдХреА рдереА рдХрд┐ tsc --build --watch
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрд┐рд▓реНрдб рдЕрдм рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИред 2.9 рдореЗрдВ рдорд╛рдирдХ tsc
рдШрдбрд╝реА рдореЛрдб рдиреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдЧрдгрдирд╛ рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдПрдХ рд╢реВрдиреНрдп рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЬрд╛рди рд╕рдХреЗрдВ рдХрд┐ рднрд╡рди рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ *.d.ts рд╕реЗ рднрд░рд╛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
@timfish рдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕реБрдиреА рдЧрдИ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ; рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ #25562
@aleksey-bykov https://github.com/Microsoft/TypeScript/issues/3469#issuecomment -400439520 рдХреБрдЫ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП
@RyanCavanaugh рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реЗрдлрд░рд┐рдВрдЧ рдХреЗрд╡рд▓ рдХреЙрдордирдЬ рдФрд░ рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣реИ рдирд╛?
рдЖрдк рдореЗрдВ рдЙрджрд╛рд╣рд░рдг:
import * as p1 from "@ryancavanaugh/pkg1";
import * as p2 from "@ryancavanaugh/pkg2";
p1.fn();
p2.fn4();
@ryancavanaugh
рдореЙрдбреНрдпреВрд▓ рдХреНрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ рдХрд┐ TS рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ?outFile
рдЖрд╡рд╢реНрдпрдХ рд╣реИ?рдореЗрд░реЗ рдкрд╛рд╕ 2 рд╕рд░рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ essentials
рдФрд░ common
рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдЪреАрдЬреЗрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИрдВ:
@ рдЕрд▓реЗрдХреНрд╕реА-рдмрд╛рдпрдХреЛрд╡
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирдореВрдирд╛ рд░реЗрдкреЛ рдпрд╛ рдХреБрдЫ рдФрд░ рд╣реИ рддреЛ рдореИрдВ рдирд┐рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЛ рд╡рд╣ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИ
@RyanCavanaugh рдХреГрдкрдпрд╛ рдХрд░реЗрдВ
рдЙрджрд╛рд╣рд░рдг.рдЬрд╝рд┐рдк
@RyanCavanaugh , рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ tsc --build --watch
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рдХреЛ рддрдм рддрдХ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрд╢реЛрдзрди рди рджреЗрдЦреЗред
рдзрд╛рдЧрд╛ рдмрд╣реБрдд рд▓рдВрдмрд╛ (рд╕рдордп рдФрд░ рд╕реНрдерд╛рди рджреЛрдиреЛрдВ рдореЗрдВ); рдЖрдЗрдП рд▓рдХреА рдЗрд╢реНрдпреВ рдирдВрдмрд░ 100 * 2^8 : #25600 . рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдиреАрдЪреЗ рдбреЙрдХреНрд╕/рдмреНрд▓реЙрдЧрдкреЛрд╕реНрдЯ рдХрд╛ рдХрд╛рд░реНрдп рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ (рдлрд╝реАрдбрдмреИрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ)
рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдБред рдореИрдВ рдЕрдм рдореЛрдиреЛрд░реЗрдкреЛ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╡рд╣рд╛рдВ рдХрд┐рд╕реА рднреА рдЕрдВрддрд┐рдо рдмрдЧ/рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЬрд▓реНрдж рд╣реА рдЗрд╕ рдкрд░ рдХреБрдЫ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрдн
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.0 рдореЗрдВ рдПрдХ рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╕рдВрд░рдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ, рдЖрдк рдмрд┐рд▓реНрдб рд╕рдордп рдореЗрдВ рдмрд╣реБрдд рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рддрд╛рд░реНрдХрд┐рдХ рдЕрд▓рдЧрд╛рд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдирдП рдФрд░ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо
tsc
,--build
рдзреНрд╡рдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореЛрдб рднреА рдкреЗрд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рддреЗрдЬреА рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд┐рд▓реНрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд╛рде рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИредрдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛
рдЖрдЗрдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреИрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрдн рд╣рдореЗрдВ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ,
converter
рдФрд░units
, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓:рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИрдВ рдФрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреА рд╣реИрдВ:
рдкрд╣рд▓реЗ, рдпрджрд┐ рдЖрдк рдПрдХ tsconfig рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рдереА:
src
рджрд┐рдЦрд╛рдИ рджрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВtest
рдФрд░src
рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рдЬреЛ рдЖрдк рд╢рд╛рдпрдж рдирд╣реАрдВ рдЪрд╛рд╣рддреЗрдЖрдк рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ tsconfig рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирдП рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ:
tsc
рджреЛ рдмрд╛рд░ рдЪрд▓рддреЗ рд╣реИрдВtsc
рджреЛ рдмрд╛рд░ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдЕрдзрд┐рдХ рд▓рдЧрддрд╛ рд╣реИtsc -w
рдПрдХ рд╕рд╛рде рдХрдИ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрдн рдЗрди рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрдн рдХреНрдпрд╛ рд╣реИ?
tsconfig.json
рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рдирдИ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рд╕рдВрдкрддреНрддрд┐ рд╣реИ,references
ред рдпрд╣ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ рдЬреЛ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреА рд╣реИ:рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджрд░реНрдн рдХреА
path
рд╕рдВрдкрддреНрддрд┐ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВtsconfig.json
рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдпрд╛ рд╕реНрд╡рдпрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (рдЬрд┐рд╕рдХрд╛ рдХреЛрдИ рднреА рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)редрдЬрдм рдЖрдк рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдирдИ рдЪреАрдЬрд╝реЗрдВ рд╣реЛрддреА рд╣реИрдВ:
.d.ts
) рд▓реЛрдб рд╣реЛрдЧреАoutFile
рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓.d.ts
рдлрд╝рд╛рдЗрд▓ рдХреА рдШреЛрд╖рдгрд╛рдПрдВ рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреАрдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ, рдЖрдк рдЯрд╛рдЗрдкрдЪреЗрдХрд┐рдВрдЧ рдФрд░ рд╕рдВрдХрд▓рди рдХреА рдЧрддрд┐ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рд╕рдореВрд╣реЛрдВ рдХреЗ рдкреНрд░рд╡рд░реНрддрди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
composite
рд╕рдВрджрд░реНрднрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдирдИ
composite
рд╕реЗрдЯрд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПредрдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд▓реНрджреА рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХреЗ рдХрд┐ рд╕рдВрджрд░реНрднрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХрд╣рд╛рдВ рдЦреЛрдЬрдирд╛ рд╣реИред
composite
рдзреНрд╡рдЬ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рдЪреАрдЬрд╝реЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИрдВ:rootDir
рд╕реЗрдЯрд┐рдВрдЧ, рдпрджрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛtsconfig
рдлрд╝рд╛рдЗрд▓ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИinclude
рдкреИрдЯрд░реНрди рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛files
рд╕рд░рдгреА рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЗрд╕ рдмрд╛рдзрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛtsc
рдЖрдкрдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреМрди-рд╕реА рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХреА рдЧрдИ рдереАрдВdeclaration
рдЪрд╛рд▓реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПdeclarationMaps
рд╣рдордиреЗ рдШреЛрд╖рдгрд╛ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рднреА рдЬреЛрдбрд╝рд╛ рд╣реИред
рдпрджрд┐ рдЖрдк
--declarationMap
рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдорд░реНрдерд┐рдд рд╕рдВрдкрд╛рджрдХреЛрдВ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдкрд╛рд░ рдХреЛрдб рдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдВ" рдФрд░ рдирд╛рдо рдмрджрд▓реЗрдВ рдЬреИрд╕реА рд╕рдВрдкрд╛рджрдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗредprepend
рд╕рд╛рдеoutFile
рдЖрдк рд╕рдВрджрд░реНрдн рдореЗрдВ
prepend
рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреНрд░реАрдкреЗрдиреНрдб рдХрд░рдирд╛ рднреА рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдКрдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред
рдпрд╣
.js
рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░.d.ts
рдлрд╝рд╛рдЗрд▓реЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд╣реЛрдВрдЧреАредtsc
рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдбрд┐рд╕реНрдХ рдкрд░ рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рд╕рд╣реА рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдореМрдЬреВрдж рд╣реЛрдЧрд╛ .рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝реЗрдВ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХреА рджреЛ рдкреНрд░рддрд┐рдпрд╛рдВ рд╕рд╛рде рдЦрддреНрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛
A
рдХреЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВD
- рдЗрд╕ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИредрдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА
рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдХреБрдЫ рдЯреНрд░реЗрдб-рдСрдл рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдЕрд╡рдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд░реНрднрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВ
.d.ts
рдлрд╝рд╛рдЗрд▓реЛрдВ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдпрд╛ рддреЛ рдирдХрд▓реА рджреЗрдЦреЗ рдмрд┐рдирд╛ рдХреБрдЫ рдирд┐рд░реНрдорд╛рдг рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдпрд╛ рдпрд╣ рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдк рдПрдХ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╣реЛрдЧрд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдБредрд╣рдо рдПрдХ рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдХреА .d.ts рдкреАрдврд╝реА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рд╣рдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореМрдЬреВрджрд╛ рдмрд┐рд▓реНрдб рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП,
tsc
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐--build
рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЖрдЗрдП
--build
рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдиреЗрдВредрдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдореЛрдб
рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдорд╛рд░реНрдЯ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмрд┐рд▓реНрдб рд╣реИред
3.0 рдореЗрдВ рдЖрдк
--build
рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧtsc
редрдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ
tsc
рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд┐рд▓реНрдб рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИредtsc --build
(tsc -b
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ) рдЪрд▓рд╛рдирд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛:рдЖрдк
tsc -b
рдПрдХрд╛рдзрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдкрде (рдЙрджрд╛рд╣рд░рдгtsc -b src test
) рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредtsc -p
, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕реНрд╡рдпрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ рдпрджрд┐ рдЗрд╕рдХрд╛ рдирд╛рдоtsconfig.json
редtsc -b
рдХрдорд╛рдВрдбрд▓рд╛рдЗрдирдЖрдк рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдХрдорд╛рдВрдбрд▓рд╛рдЗрди рдкрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд╕ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ -
tsc
рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдСрд░реНрдбрд░ рдХрд░реЗрдЧрд╛ рддрд╛рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рд╣рдореЗрд╢рд╛ рдкрд╣рд▓реЗ рдмрдиреА рд░рд╣реЗредtsc -b
рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреБрдЫ рдЭрдВрдбреЗ рднреА рд╣реИрдВ:--verbose
: рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдмреЛрдЬрд╝ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ (рдХрд┐рд╕реА рдЕрдиреНрдп рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)--dry
: рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ--clean
: рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ (--dry
рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)--force
: рдРрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВ рдЬреИрд╕реЗ рдХрд┐ рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреБрд░рд╛рдиреЗ рд╣реИрдВ--watch
: рд╡реЙрдЪ рдореЛрдб (--verbose
рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ
рдЖрдо рддреМрд░ рдкрд░,
tsc
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдпрд╛ рдЯрд╛рдЗрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ (.js
рдФрд░.d.ts
) рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛, рдЬрдм рддрдХ рдХрд┐noEmitOnError
рдЪрд╛рд▓реВ рди рд╣реЛредрдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реЛрдЧрд╛ - рдпрджрд┐ рдЖрдкрдХреА рдкреБрд░рд╛рдиреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдХреЛрдИ рдирдИ рддреНрд░реБрдЯрд┐ рдереА, рддреЛ рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рджреЗрдЦреЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдж рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЕрдм рдЕрдк-рдЯреВ-рдбреЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред
рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ,
tsc -b
рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдПnoEmitOnError
рд╕рдХреНрд╖рдо рд╣реИредрдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдмрд┐рд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ (
.js
,.d.ts
,.d.ts.map
, рдЖрджрд┐) рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рд╕реНрд░реЛрдд рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдмрд╛рдж--force
рдмрд┐рд▓реНрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рд╕рдВрдЪрд╛рд▓рди рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╕реНрд░реЛрдд рдирд┐рдпрдВрддреНрд░рдг рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдФрд░ рджреВрд░рд╕реНрде рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рдмреАрдЪ рдЯрд╛рдЗрдорд╕реНрдЯрдореИрдк рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВредрдПрдордПрд╕рдмрд┐рд▓реНрдб
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдПрдордПрд╕рдмрд┐рд▓реНрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рддреЛ рдЖрдк рдЬреЛрдбрд╝рдХрд░ рд╕рдХреНрд╖рдо рдмрд┐рд▓реНрдб рдореЛрдб рдЪрд╛рд▓реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЖрдкрдХреА рдкреНрд░реЛрдЬ рдлрд╝рд╛рдЗрд▓ рдореЗрдВред рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рдлрд╛рдИ рдХреЛ рднреА рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
tsconfig.json
/-p
, рдореМрдЬреВрджрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдгреЛрдВ рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЖрдкрдХреА tsconfig рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредрдХреБрдЫ рдЯреАрдореЛрдВ рдиреЗ рдПрдордПрд╕рдмрд┐рд▓реНрдб-рдЖрдзрд╛рд░рд┐рдд рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рд╕реЗрдЯ рдЕрдк рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ tsconfig рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЧреНрд░рд╛рдлрд╝ рдСрд░реНрдбрд░рд┐рдВрдЧ рд╣реИ рдЬреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдРрд╕рд╛ рд╣реИ, рддреЛ рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╕рд╛рде
msbuild
рд╕рд╛рдеtsc -p
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ; рдпреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд▓ рд╣реИрдВредрджрд┐рд╢рд╛ рдирд┐рд░реНрджреЗрд╢
рд╕рдордЧреНрд░ рд╕рдВрд░рдЪрдирд╛
рдЕрдзрд┐рдХ
tsconfig.json
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдЕрдкрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗредрдЗрд╕ рддрд░рд╣ рдЖрдк рдПрдХрд╛рдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдПрдХ "рд╕рдорд╛рдзрд╛рди"
tsconfig.json
рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреА рд╕рднреА рд▓реАрдл-рдиреЛрдб рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╕references
рд╣реИредрдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдкреЛ рдореЗрдВ рд╣рдо рд╕рднреА рдПрдВрдбрдкреЙрдЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕
tsc -b src
рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рднреА рд╕рдмрдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛsrc/tsconfig.json
рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВрдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 3.0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕
tsconfig.json
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХreference
рд╣реИ, рддреЛ рдЕрдм рдЦрд╛рд▓реАfiles
рд╕рд░рдгреА рд╣реЛрдиреЗ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИредрдЖрдк рдЗрди рдкреИрдЯрд░реНрди рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдкреЛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ -
src/tsconfig_base.json
,src/tsconfig.json
, рдФрд░src/tsc/tsconfig.json
рдкреНрд░рдореБрдЦ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВредрд╕рд╛рдкреЗрдХреНрд╖ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рд╛рдкреЗрдХреНрд╖ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реЗрдкреЛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдореВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрд╕ рдПрдХ
tsconfig.json
рдлрд╝рд╛рдЗрд▓ рд░рдЦреЗрдВ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдЗрдЪреНрдЫрд┐рдд рд▓реЗрдпрд░рд┐рдВрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВreference
s рдЬреЛрдбрд╝реЗрдВредрдЖрдкрдХреЛ рдпрд╛ рддреЛ
outDir
рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕реНрдкрд╖реНрдЯ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛rootDir
рдХреЛ рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдЯ рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛редрдЖрдЙрдЯрдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛
outFile
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рд▓реЗрдЖрдЙрдЯ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдЙрддрдирд╛ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИредрдзреНрдпрд╛рди рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЖрдо рддреМрд░ рдкрд░ "рдЕрдВрддрд┐рдо" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рддрдХ
prepend
рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ - рдЗрд╕рд╕реЗ рдмрд┐рд▓реНрдб рд╕рдордп рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ рдФрд░ рдХрд┐рд╕реА рднреА рдмрд┐рд▓реНрдб рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ I/O рдХреА рдорд╛рддреНрд░рд╛ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреАредрдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдкреЛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдВрджрд░реНрдн рд╣реИ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ "рд▓рд╛рдЗрдмреНрд░реЗрд░реА" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рдХреБрдЫ "рдПрдВрдбрдкреЙрдЗрдВрдЯ" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВ; "рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ" рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдЫреЛрдЯрд╛ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЙрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреА рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
monorepos . рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛
TODO: рдЕрдзрд┐рдХ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд╢ рдФрд░ рд▓рд░реНрди рдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбрд▓ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдЕрдВрдд рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ