TemplateFactory type incompatible with setComponentTemplate type from @types/ember__component

Open
#787 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Domain
tooling

Research direction

Start with the provided TypeScript example and inspect the TemplateFactory declarations in ember-cli-htmlbars and @types/ember__component, including the definition referenced by index.d.ts. Review ember-cli-htmlbars PR 764 for the branding-property change, then verify that the example type-checks with compatible declarations.

Written by the indexing model from the issue text.

Description

With ember-cli-htmlbars 6.3.0 and latest version 4.0.22 of @types/ember__component, for this type of code...

import { hbs } from 'ember-cli-htmlbars';
import { setComponentTemplate } from '@ember/component';

export const Button = setComponentTemplate(
  hbs`
    <button>{{yield}}</button>`,
  templateOnly(),
);

I am getting this type error:

Argument of type 'import("/[...]/node_modules/ember-cli-htmlbars/lib/index").TemplateFactory' is not assignable to parameter of type 'TemplateFactory'.
  Property '__htmlbars_inline_precompile_template_factory' is missing in type 'import("/[...]/node_modules/ember-cli-htmlbars/lib/index").TemplateFactory' but required in type 'TemplateFactory'.ts(2345)
index.d.ts(14, 5): '__htmlbars_inline_precompile_template_factory' is declared here.

@types/ember__component is still defining TemplateFactory like this:

interface TemplateFactory {
    __htmlbars_inline_precompile_template_factory: any;
}

But https://github.com/ember-cli/ember-cli-htmlbars/pull/764 removed that __htmlbars_inline_precompile_template_factory property (used as a way of type branding I guess?), so I am indeed wondering how this is supposed to work now? Maybe just working with Ember's native types?

/cc @chriskrycho

Dominant language
JavaScript
Stars
77
Forks
65
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ember-cli/ember-cli-htmlbars

All issues in ember-cli/ember-cli-htmlbars

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.