导入打字稿定义

Importing typescript definitions

我正在使用 Angular-CLI to create a web application and am having trouble importing the facebook type definitions。他们特别声明:

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 代码来识别类型和编译工作,但是当应用程序重新加载时,它会尝试访问 /FB,这会给出 404 错误,因为它不存在。我创建的所有模块都在打字稿文件所在的相对目录中访问,例如 Facebook 模块是从 /app/services/facebook/facebook.js

检索的

您可以通过将此添加到您的 TypeScript 代码来告知编译器有关声明文件的信息:

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

然后你可以用import {Something} from "FB"import * as FB from "FB".

这样的语句导入FB模块