Arrays 代表Adobe';TypeScript中的数组类集合

Arrays 代表Adobe';TypeScript中的数组类集合,arrays,typescript,collections,typing,Arrays,Typescript,Collections,Typing,Adobe的ExtendScript具有Number索引集合的功能,例如ArtLayers类型document.ArtLayer[0]可能会为我获取当前文档中的第一个ArtLayerArtLayers还有许多其他字段和方法。如何在.d.ts文件中最好地表示此类型?可以找到ExtendScript的定义。我看了看,它似乎并不完美,但它可能是一个起点/参考点 如果我必须像你描述的那样写一个类型,我可能会使用这样的东西: interface ArtLayers { length: number

Adobe的ExtendScript具有
Number
索引集合的功能,例如
ArtLayers
类型
document.ArtLayer[0]
可能会为我获取当前文档中的第一个
ArtLayer
ArtLayers
还有许多其他字段和方法。如何在
.d.ts
文件中最好地表示此类型?

可以找到
ExtendScript
的定义。我看了看,它似乎并不完美,但它可能是一个起点/参考点

如果我必须像你描述的那样写一个类型,我可能会使用这样的东西:

interface ArtLayers {
    length: number;
    [index: number]: ArtLayer;
    parent: Document
    typename: string
    add(): void
    getByName(name: string): void
    removeAll(): void
}

已找到
ExtendScript
的定义。我看了看,它似乎并不完美,但它可能是一个起点/参考点

如果我必须像你描述的那样写一个类型,我可能会使用这样的东西:

interface ArtLayers {
    length: number;
    [index: number]: ArtLayer;
    parent: Document
    typename: string
    add(): void
    getByName(name: string): void
    removeAll(): void
}

仅供参考,包
photoshop.d.ts
没有在
ArtLayers
上实现类似数组的访问,也没有在任何数组(如ExtendScript类型)上实现AFAIK。@CarlpanteAudepoulin是的,我看到了,有点不好的定义,但正如我所说,这可能是一个足够好的开始。您可以使用这些定义并扩展using接口,合并缺少的东西Xtendscript的行为并不总是像Javascript。这里的问题是,普通Javascript不提供索引运算符重载,但Extendscript将其用于某些类型,因此您无法为Typescript提供完美的定义。当我自己工作时,我试图通过构建函数来绕过这个问题,这些函数将可索引类型作为数组返回。我很想知道你想出了什么解决方案。仅供参考,包
photoshop.d.ts
ArtLayers
上没有实现类似数组的访问,也没有在任何数组(如ExtendScript类型)上实现AFAIK。@carlpantaudepulin是的,我看到了,有点糟糕的定义,但正如我所说,这可能是一个足够好的开始。您可以使用这些定义并扩展using接口,合并缺少的东西Xtendscript的行为并不总是像Javascript。这里的问题是,普通Javascript不提供索引运算符重载,但Extendscript将其用于某些类型,因此您无法为Typescript提供完美的定义。当我自己工作时,我试图通过构建函数来绕过这个问题,这些函数将可索引类型作为数组返回。我很想知道你想出了什么解决办法。