Javascript 使用facebook登录让typescript为Angular 2项目工作
我正试着用Angular 2和typescript开始运行。到目前为止一切都很好,但是我在使用Facebook登录信息时遇到了一些麻烦。我找到了一个项目。在此示例中,它们具有以下连接器: fbconnector.tsJavascript 使用facebook登录让typescript为Angular 2项目工作,javascript,angularjs,typescript,Javascript,Angularjs,Typescript,我正试着用Angular 2和typescript开始运行。到目前为止一切都很好,但是我在使用Facebook登录信息时遇到了一些麻烦。我找到了一个项目。在此示例中,它们具有以下连接器: fbconnector.ts export class FBConnector { constructor(appID: string) { if (!window.fbAsyncInit) { console.log('define');
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时,会出现以下两个错误:
error TS2339: Property fbAsyncInit does not exist on type 'Window'.
error TS2304: Cannot find name 'FB'.
考虑到这一点,typescript需要定义这些变量。我想这部分是因为我对typescript还不熟悉,但我不知道该怎么做。我应该做一个自定义打字文件吗?或者我应该使用变通方法?(例如在窗口前面添加?)
提前谢谢 最终找到了答案,DefinitelyTyped拥有Facebook Javascript SDK()的类型定义 我所要做的就是添加文件并在文件顶部用以下行引用它:
//
您可以通过以下方式安装打字:打字安装-SG dt~fbsdk
您可以提供一些详细信息吗,您在上面的哪个文件上添加了代码?附加的链接是deadI installed typings,如上所述,Sublime 3不再突出显示错误。但是,ng服务器不断抛出相同的错误“类型“Window”上不存在属性“FBAsyninit”。