0

我想为我的 Angular 元素获得准确的类型,但是我应该在哪里放置 HTMLElementTagNameMap-interface,以便正确识别?

在每次出现时强制转换类型有效:

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

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

我必须如何或在哪里正确使用它?

4

1 回答 1

3

您可以在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'}>;
}

在此处输入图像描述

于 2019-02-05T19:43:50.600 回答