我可以在TypeScript函数签名中将两个“any”标记为相同的东西吗?

我可以在TypeScript函数签名中将两个“any”标记为相同的东西吗?,typescript,Typescript,考虑以下功能: function extractItemsFromArray(array: any[], isItemToBeRemoved: (item: any) => boolean) { let removedItems = []; let i = array.length; while(i--) if(isItemToBeRemoved(array[i])) removedItems.push(array.splice(i, 1)); retu

考虑以下功能:

function extractItemsFromArray(array: any[], isItemToBeRemoved: (item: any) => boolean) {
  let removedItems = [];
  let i = array.length;
  while(i--)
    if(isItemToBeRemoved(array[i]))
      removedItems.push(array.splice(i, 1));
  return removedItems;
}
它的签名是:我接受任何项的数组和一个checker函数,该函数决定是否删除任何类型的项


但是,如果一个带有signature item:string=>boolean的函数作为isItemToBeRemoved传递,并且一个数字[]作为数组传递,那么我假设这两个函数都被断言为某些类型,而不是上面的函数定义不会告诉TS它实际上不正常。在extractItemsFromArray的定义中,有没有办法将这两个任意项标记为相同类型的东西?

好的,在写这个问题时,我用谷歌搜索了一下,并决定阅读更多相关内容。似乎类型别名实际上就是我要寻找的:

function extractItemsFromArray<T>(array: T[], isItemToBeRemoved: (item: T) => boolean) {
  ...
}
其用法似乎是:

let roots = extractItemsFromArray<INode>(dictionaryCopy, item => !item.parentId);

不输入别名。泛型类型参数,但确实是这样做的it@TitianCernicova-德拉戈米尔啊,谢谢你的更正,是必需的参考文件,不是答案中提到的那个