Typescript 编译器错误 - 提供的参数与调用目标的任何签名都不匹配
Posted
技术标签:
【中文标题】Typescript 编译器错误 - 提供的参数与调用目标的任何签名都不匹配【英文标题】:Typescript compiler error - supplied parameters do not match any signature of call target 【发布时间】:2016-02-17 09:43:03 【问题描述】:Typescript 编译器 - 提供的参数与调用目标的任何签名都不匹配。
我正在使用打字稿创建一个 angular2 应用程序。 当我将实例设置为 firebase 时,它在 git bash 命令行中给了我这个错误:“提供的参数与调用目标的任何签名都不匹配”。
它抱怨这行代码:
this.data = new AngularFire(new Firebase('https://markng2.firebaseio.com/users'));
这是 app.ts 文件的代码:
import Component, View, bootstrap, bind, provide from 'angular2/angular2';
import Router, ROUTER_BINDINGS, RouterOutlet, RouteConfig, RouterLink, ROUTER_PROVIDERS, APP_BASE_HREF from 'angular2/router';
import Injectable from 'angular2/angular2';
import HTTP_PROVIDERS, Http, Headers from 'angular2/http';
import Todo from './components/todo/todo';
import About from './components/about/about';
import AuthService from './authService';
import EnvironmentService from './environmentService';
import AngularFire, FirebaseArray from '../firebase/angularfire';
@Component(
selector: 'app'
)
@View(
template: `
<div class="container">
<nav>
<ul>
<li><a [router-link]="['/Home']">Todo</a></li>
<li><a [router-link]="['/About']">About</a></li>
</ul>
</nav>
<router-outlet></router-outlet>
</div>
`,
directives: [RouterOutlet, RouterLink]
)
@RouteConfig([
path: '/', redirectTo: '/home' ,
path: '/home', component: Todo, as: 'Home' ,
path: '/about', component: About, as: 'About'
])
@Injectable()
export class AppComponent
store:FirebaseArray;
data: AngularFire;
constructor(_router: Router, _authService: AuthService)
//Firebase setup - Here the line below seems to be the issue???:
this.data = new AngularFire(new Firebase('https://markng2.firebaseio.com/users'));
this.store = this.data.asArray();
_router.subscribe((val) =>
_authService.isUserLoggedIn().then((success) =>
if(!success)
_router.navigate(['/About']);
else
_authService.getSpotifyData().then((success) =>
console.log(success);
);
);
)
bootstrap(AppComponent, [ROUTER_PROVIDERS, provide(APP_BASE_HREF, useValue: '/'), HTTP_PROVIDERS, AuthService, EnvironmentService]);
这是 Git Bash 命令错误:
【问题讨论】:
Firebase
定义在哪里?
我在本地存储 Firebase 文件,并且我的 index.html 链接到脚本。 App.ts 文件就是上面的代码。 Firebase 似乎工作正常,角度 2。但打字稿仍然向我显示错误。
这个构造函数可以吗?我在定义中看不到这样的东西:github.com/DefinitelyTyped/DefinitelyTyped/blob/master/…
我觉得构造函数没问题,因为你new对象而不是注入构造函数。
我试着看看。我唯一注意到的是github.com/DefinitelyTyped/DefinitelyTyped/blob/master/…@deprecated. Not possible with AngularFire 1.0+
。也许它有些重要。
【参考方案1】:
更新: We are working on AngularFire2 right now
我认为这里的困惑在于现在没有 Angular 2 的 AngularFire。
当前的 AngularFire 1.0+ 与 Angular 2 不兼容。它只是 AngularJS 1.2+。
This AngularFire for Angular 2 是我为this presentation 写的东西。它不受官方支持。
虽然目前还没有与 Firebase 和 Angular 2 的官方集成,但 Firebase SDK 由于 zone.js 的魔力而运行良好。
【讨论】:
一旦我将 firebase js 更新到最新版本,它似乎工作正常。谢谢!以上是关于Typescript 编译器错误 - 提供的参数与调用目标的任何签名都不匹配的主要内容,如果未能解决你的问题,请参考以下文章
在“”类型上找不到带有“数字”类型参数的索引签名 - Typescript 编译器错误
React + Redux-Observable + Typescript - 编译,参数不可分配错误