如何将angular组件[的选择器]键入一个变量?

问题描述 投票:1回答:1

我正在向一个 angular 应用程序中构建一个自定义的多拖放功能,在其中一个服务中,我迭代了一个主机组件数组 (<app-cell>).

当我遍历's'数组时,是否有办法给我的迭代变量指定一个 "自定义类型"? 换句话说,我怎样才能将瓦片的类型限制为app-tile?

这不是确切的代码,但或多或少说明了我想实现的目标。

let selectedTiles = Array.from(document.querySelectorAll('app-tile'));

selectedTiles.map((tile: **WHAT GOES HERE?**) => {
  // do something with tile
}

我以前曾用模型来 "自定义键 "简单的对象,但我不知道该怎么做,试图将分配范围缩小到我自己的angular组件。

从我自己的google中,TemplateRef或directives似乎是正确的路径,但我对这两者的理解是朦胧的,可以使用一些方向,我可以使用什么样的类型! 谢谢!

angular typescript components selector typescript-typings
1个回答
0
投票

这真的取决于什么类型的"选择的瓷砖"是.它的类型将是这样的 Array<T>在这里,假设它是某种类型的 { id: number, dataset: Array<string> }.由于你是在选定的Tile数组上进行映射,每个元素(这里是"瓦片")将类型为 T.

更具体地说,请您分享一下您使用的服务。另外,如果可能的话,你能分享代码链接吗?


0
投票

在阅读angular文档时偶然发现了这个答案。 不幸的是,自定义类型是不可能的。

当[通用DOM APIs,如document.createElement()或document.querySelector()]被未知元素调用时,如自定义元素名(在我们的例子中是弹出式元素),这些方法将返回一个通用类型,如HTMLElement,因为TypeScript无法推断返回元素的正确类型。

链接到这里

© www.soinside.com 2019 - 2024. All rights reserved.