导入打字稿定义

时间:2016-02-10 22:01:26

标签: typescript facebook-javascript-sdk angular-cli

我使用Angular-CLI创建了一个Web应用程序,但导入facebook type definitions时遇到问题。具体来说,他们宣布:

interface Window{
    fbAsyncInit() : any;
}

declare module "FB" {
    export = FB;
}

declare var FB : FBSDK;

在我的app 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错误。我创建的所有模块都在打字稿文件所在的相对目录中访问,例如从/app/services/facebook/facebook.js

中检索Facebook模块

1 个答案:

答案 0 :(得分:1)

您可以通过将声明文件添加到TypeScript代码来告诉编译器:

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

然后您可以使用import {Something} from "FB"import * as FB from "FB"等语句导入FB模块。