【问题标题】:Importing typescript definitions导入打字稿定义
【发布时间】:2016-02-10 22:01:25
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 啊,我所要做的就是添加引用并且进行导入。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-04-26
    • 2021-12-01
    • 2020-04-19
    • 2023-02-09
    • 2018-10-22
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多