2017-09-10 10 views
0

Adob​​eのExtendScriptの機能Numberの索引付けされたコレクションです(例:ArtLayers)。 document.artLayers[0]は私に最初のArtLayerをプレゼントするかもしれません。 ArtLayersにもさまざまなフィールドとメソッドがあります。どのようにして.d.tsファイルでこのタイプを表現するのが最適でしょうか?Adob​​eの配列類似のコレクションをTypeScriptで表します。

答えて

3

ExtendScriptの定義は、すでにhereとなります。私はそれを見て、それは完璧に見えませんが、それは出発点/基準点になる可能性があります。

私は種類を書かなければならなかった場合は、それを説明するように、私はおそらくこのようなものを使用します。

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

FYI、パッケージは 'photoshop.d.ts'は'上のアレイのようなアクセスを実装していません。 ArtLayers'、またはAFAIKを任意の配列形式のExtendScript型で使用できます。 –

+0

@CarlPatenaudePoulinええ、私は悪い定義のようなものを見ましたが、私が言ったように、それは十分な始まりかもしれません。あなたはそれらの定義を取って、欠落しているものとマージするusingインターフェースを拡張することができます –

+0

Extendscriptは常にJavascriptのように動作するとは限りません。ここで問題となるのは、通常のJavascriptではインデックス演算子のオーバーロードは提供されませんが、Extendscriptはその型の一部でそれを使用するため、Typescriptの完全な定義はできません。自分の[定義ファイル](https://github.com/timmythetiny/adobe-typings/blob/master/definitions/photoshop.d.ts)で作業していたときに、関数を組み込むことで問題を回避しようとしましたインデックス可能な型を配列として返します。私はあなたが思いつく解決策を見て好奇心が強いでしょう。 –

関連する問題