0

最初に、ambient モジュールですべてを宣言しました。後で enum を非アンビエント モジュールに抽出する必要がありました。これは、enum メンバーのルックアップが必要であり、declare と const が不可能であるためです。サンプルファイルは次のようになります

//enums.ts
export enum Enum1{
    Value1, Value2
}

//ambient.d.ts
import * as enums from "./enums";
declare interface TypeA
{
  enumField: enums.Enum1;
  strField: string;
}

//consumer.ts
/// <reference path="ambient.d.ts"/>
class Consumer{
 memberField: TypeA; // <= Here compiler cannot find TypeA
}

私は何を間違っていますか?どうすればよいですか?

4

2 に答える 2

1

行を追加するとすぐに:

import * as enums from "./enums";

それを外部モジュールに変換するため、そのコンテンツにアクセスするには、次のようにインポートする必要があります。

import * as amb from './ambient'
class Consumer
{
    memberField: amb.TypeA; 
}

補足として。名前空間を使用したり、モジュール ( linklink )と混合したりしないでください。

于 2016-03-29T22:09:13.877 に答える