gpt4 book ai didi

javascript - 使用 facebook 登录让 typescript 为 Angular 2 项目工作

转载 作者:行者123 更新时间:2023-11-30 16:06:45 25 4
gpt4 key购买 nike

我正在尝试启动并运行 Angular 2 和 typescript 。到目前为止一切顺利,但我在使用 Facebook 登录消息时遇到了一些麻烦。我找到了一个项目 on github that demonstrated how this can be done .在此示例中,它们具有以下连接器:

fbconnector.ts

export class FBConnector {

constructor(appID: string) {
if (!window.fbAsyncInit) {
console.log('define');
window.fbAsyncInit = function() {
FB.init({
appId: appID,
xfbml: true,
version: 'v2.5'
});
};
}
}

initFB() {
var js: any,
id = 'facebook-jssdk',
ref = document.getElementsByTagName('script')[0];

if (document.getElementById(id)) {
return;
}

js = document.createElement('script');
js.id = id;
js.async = true;
js.src = "//connect.facebook.net/en_US/sdk.js";

ref.parentNode.insertBefore(js, ref);
}

}

当我编译 typescript 时出现以下 2 个错误:

error TS2339: Property fbAsyncInit does not exist on type 'Window'.
error TS2304: Cannot find name 'FB'.

当您考虑时,这是有道理的, typescript 需要定义这些变量。我想这部分是因为我是 typescript 的新手,但我不完全知道应该怎么做。我应该制作自定义类型文件吗?还是我应该使用变通办法? (比如在窗口前添加?)

提前致谢!

最佳答案

最终找到了答案,DefinitelyTyped 具有 Facebook Javascript SDK ( over here) 的类型定义。

我所要做的就是添加文件并在文件顶部使用以下行对其进行引用:

/// <reference path="../../../typings/main/ambient/fbsdk/index.d.ts" />

关于javascript - 使用 facebook 登录让 typescript 为 Angular 2 项目工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36934656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com