ライブラリ用のTypeScript定義ファイルを作成しようとしています。カスタムconst enumを使用したTypescript定義
ライブラリーには、タイプnumber
のパラメーターを受け入れるメソッドがありますが、このパラメーターは数字の特定のセットのみにすることができるので、const enum
を使用して作成した列挙型が必要です。
// definitions/SimpleDefinition.d.ts
/// <reference path="Enums.ts" />
declare class SampleDefinedClass {
public static SampleMethod(enumArg: Enums.SampleEnum): void;
}
このような私の列挙::私はそうのように、.d.ts
で私のクラスを定義するとき
しかし、
// definitions/Enums.ts
export const enum SampleEnum {
Item1 = 1,
Item2 = 2
}
そして、私は2結びつけるためにindex.d.ts
があります
// definitions/index.d.ts
/// <reference path="Enums.ts" />
/// <reference path="SampleDefinition.d.ts" />
このコンパイラは私にこう伝えます:
../definitions/SampleDefinition.d.ts(4,41): error TS2503: Cannot find namespace 'Enums'.
SampleDefinition.d.ts
の先頭にインポートを追加しようとしましたが、その結果、自分のコードファイルで定義が正しく認識されませんでした。 Visual StudioとVisual Studioのコードでは実際のインポートでエラーが表示されません。
import Enums = require("./Enums");
Main.ts(6,1): error TS2304: Cannot find name 'SampleDefinedClass'.
私はAMDを使用して、そして周りのファイルを移動するように、いくつかのより多くの事を試してみましたが、これは仕事を得るように見えることはできません。これを行う方法はありますか?あるいは、私はそれをやるための別の方法を見つけなければならないでしょうか?
この正確なサンプルでGitHub repoを作成しました。
私は最初の提案を新しいブランチに適用しました:https://github.com/Rene-Sackers/TypeScriptDefinitionsTest/tree/ edit-1しかし、私はまだ '名前を見つけることができません 'SampleDefinedClass'' –
そのブランチの' SampleDefinition.d.ts'に 'export class SampleDefinedClass'があるからです。元のコードには 'declare class SapmleDefinedClass'があります。これは最初のオプションで動作するはずです。 – artem
ああ!私の謝罪は、完璧に動作します! –