0

Angular-CLIを使用して Web アプリケーションを作成していますが、facebook の型定義のインポートに問題があります。具体的には、次のように宣言しています。

interface Window{
    fbAsyncInit() : any;
}

declare module "FB" {
    export = FB;
}

declare var FB : FBSDK;

私のアプリのsrcディレクトリにはapp/services/facebook/facebook.ts、これがあります:

import {Injectable} from 'angular2/core';
import {FB} from './../../types/fbsdk.d.ts';

そして、私が作成した新しいタイプ ディレクトリの facebook 定義: app/types/fbsdk.d.ts. コンパイル時に発生するエラーは次のとおりです。

File 'app/types/fbsdk.d.ts' is not a module.

他にもいくつか試してみましたが、うまくいくものは見つかりませんでした。


編集

Visual Studio Code に型とコンパイルを認識させましたが、アプリをリロードすると、/FB存在しないため 404 エラーが発生してアクセスしようとしました。私が作成したすべてのモジュールは、typescript ファイルがあった相対ディレクトリでアクセスされます。たとえば、Facebook モジュールは次の場所から取得されます。/app/services/facebook/facebook.js

4

1 に答える 1

1

これを TypeScript コードに追加することで、宣言ファイルについてコンパイラに伝えることができます。

/// <reference path='./../../types/fbsdk.d.ts'/>

import {Something} from "FB"次に、またはのようなステートメントで FB モジュールをインポートできますimport * as FB from "FB"

于 2016-02-10T22:14:28.897 に答える