рдореБрджреНрджреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдХреГрдкрдпрд╛ рдкрд╣рд▓реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд┐рдВрджреБрдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
рдпрд╣ рд╢рд╛рдпрдж рдЖрдкрдХреЛ рддреЗрдЬреА рд╕реЗ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рдмрдЧ рдХреЗ рд▓рд┐рдП, рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг-рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рдкреАрдЖрд░ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реИрдВрдбрд▓рдмрд╛рд░ рдХреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ knownHelper
рд╡рд┐рдХрд▓реНрдк рдкрд░ рдХрд╕реНрдЯрдо рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдХрд╕реНрдЯрдо рд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЗ рд╕рд╛рде knownHelpersOnly
рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреЗрдХ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП knownHelpers
рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛;
function given(...args: any[]): string {
const options = args.pop();
if (options.fn) {
let complete = true;
const proxy = new Proxy(this, {
get(context, prop: string): object {
if (!(prop in context)) {
complete = false;
}
return context[prop];
},
});
const text = options.fn(proxy);
return complete ? text : '';
}
return args.some((a: string): boolean => !a) ? '' : args.join(' ');
}
const templateOptions = {
helpers: {
first,
},
};
const compilerOptions = {
knownHelpers: { first: true } as unknown, // Without this `unknown` compilation fails
knownHelpersOnly: true,
};
Hanblebars.compile('My nice template {{first "text"}}', compilerOptions)({}, templateOptions);
рдЙрддреНрдкрд╛рджрд┐рдд рддреНрд░реБрдЯрд┐ ( unknown
рдХрд╛рд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:
TypeScript diagnostics (customize using `[jest-config].globals.ts-jest.diagnostics` option):
src/index.test.ts:93:41 - error TS2345: Argument of type '{ knownHelpers: { first: boolean; }; knownHelpersOnly: boolean; }' is not assignable to parameter of type 'CompileOptions'.
Types of property 'knownHelpers' are incompatible.
Type '{ first: boolean; }' has no properties in common with type '{ helperMissing?: boolean; blockHelperMissing?: boolean; each?: boolean; if?: boolean; unless?: boolean; with?: boolean; log?: boolean; lookup?: boolean; }'.
рдХреНрдпрд╛ CompilerOptions
рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП ?:
interface CompileOptions {
data?: boolean;
compat?: boolean;
knownHelpers?: { [name: string]: boolean };
knownHelpersOnly?: boolean;
noEscape?: boolean;
strict?: boolean;
assumeObjects?: boolean;
preventIndent?: boolean;
ignoreStandalone?: boolean;
explicitPartialContext?: boolean;
}
(рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ? рдЕрдЧрд░ рдпрд╣ рд╕рд╣реА рд╣реИ рддреЛ рдореИрдВ рдкреАрдЖрд░ рднреЗрдЬрдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВ)
рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдлрд┐рдХреНрд╕ рдзрдХреНрдХрд╛ рджрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдИрдбреАрдИ рдореЗрдВ рдмрд┐рд▓реНрдЯрд┐рди-рд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рд▓реНрдЯрд┐рди рдирд╛рдо рд░рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХрд┐рд╕реА рдЕрдиреНрдп рдирд╛рдо рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдВред
рддреБрд░рдд рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрдХреНрд░рд┐рдпрд╛! рдЗрд╕реЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
рдЕрдЧрд▓рд╛ рдкреИрдЪ рд╕рдВрд╕реНрдХрд░рдгред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╕рдордп рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдордВрдЧрд▓рд╡рд╛рд░ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред
4.2.0 . рдореЗрдВ рдЬрд╛рд░реА