在哪里声明HTMLElementTagNameMap以获取Angular Elements的类型?

时间:2019-02-05 10:36:28

标签: angular typescript angular-elements

我想为Angular元素输入准确的类型,但是我应该在哪里放置HTMLElementTagNameMap接口,以便正确识别?

在每次出现的情况下强制投放类型:

const newCustomElement = 
   document.createElement('my-custom-element') as NgElement & WithProperties<{foo: 'bar'}>;

但是使用Angular.io中提到的第二种方法,通过声明HTMLElementTagNameMap对我不起作用。

如何或在何处正确使用此功能?

1 个答案:

答案 0 :(得分:1)

您可以在Angular CLI应用程序的typings.d.ts文件夹中创建src文件:

type NgElement = import ('@angular/elements').NgElement;
type WithProperties<T> = import ('@angular/elements').WithProperties<T>;

interface HTMLElementTagNameMap {
  'my-custom-element': NgElement & WithProperties<{foo: 'bar'}>;
}

enter image description here