/* eslint-disable no-console */ import Helper from '@ember/component/helper'; import type { HelperLike } from '@glint/template'; /** * @param {number} first - the first argument * @param {number} second - the second argument * @return {number} the sum of the two values */ export function plainHelperA(first: number, second: number): number { return first + second; } export const helperLikeB = ((...args: unknown[]) => { console.log(args); }) as unknown as HelperLike<{ Args: { Named: { optional?: boolean }; Positional: [first: string, second?: string]; }; Return: string; }>; export const plainHelperC = ( a: number, b: number, options?: { optional?: boolean; required: boolean } ) => { /* ... */ console.log(a, b, options); }; export class classHelperD extends Helper<{ Args: { Named: { optional?: boolean }; Positional: [first: string, second?: string]; }; Return: string; }> { /* ... */ } export interface ESignature { Args: { Named: { optional?: boolean }; Positional: [first: string, second?: string]; }; Return: string; } export class classHelperE extends Helper { /* ... */ }