Arrays 代表Adobe';TypeScript中的数组类集合
Adobe的ExtendScript具有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
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提供完美的定义。当我自己工作时,我试图通过构建函数来绕过这个问题,这些函数将可索引类型作为数组返回。我很想知道你想出了什么解决办法。