Angular 2を使用するMeteorアプリで、次のようなカスタムデータ型を作成します。
interface MyCustomType {
index: number;
value: string;
}
次に、このカスタムタイプを複数のファイルで使用します。 「mycustom.type.ts」という名前の別のファイルを作成してみましたが、その内容は次のとおりです。
export interface MyCustomType {
index: number;
value: string;
}
次に、このタイプをインポートして、別のファイルで使用できるようにします。
import MyCustomType from "./mycustom.type"
ただし、Atomは次のエラーを報告します。
TS Error File '/.../mycustom.type.ts' is not a module ...
タイプを複数の場所で使用できるように、タイプを宣言およびインポートする方法を教えてください。
むしろそのようにインポートする必要があります:
import { MyCustomType } from './mycustom.type';
{
と}
を忘れないでください
受け入れられたものが不完全であるため、この回答を追加しています。次の2つの問題があります。
1つは、モジュールにexport
できるように、インターフェイスにimport
を追加する必要があります。
export interface MyCustomType { index: number; value: string; }
次に、中括弧{ }
をimportステートメントに追加する必要があります。
import { MyCustomType } from './mycustom.type';
問題は、コンポーネント内のパスです。/で./を変更してみてください
私はすべてのトップアンサーを試しましたが、それでも同じエラーが発生し、さらに理解します @ edzillion 1つの問題がこのエラーを発生させる可能性があります。
1つは、モジュールとしてインポートできるように、インターフェースにエクスポートを追加する必要があります。
次に、中括弧{}をimportステートメントに追加する必要があります。
第三:インターフェース名は、ファイル名と一致する必要があります(インターフェースが存在するファイル)
私は、問題はパスにあると思います:
以下の例を参考にしてください:
ファイルが別のフォルダーにある場合は、以下を参照してください。
import { IPosts } from "../interfaces/iposts.type";
iposts.type.ts:
export interface IPosts {
userId: number;
id: number;
title: string;
body: string;
}