【发布时间】:2019-03-10 18:18:44
【问题描述】:
最近我尝试遵循 Adam Freeman 的 ProAngular,但遇到了一个在其他地方找不到的问题。我有一个代码:
canActivate(route:ActivatedRouteSnapshot,state:RouterStateSnapshot)
:Promise<boolean>|boolean{
if (route.params['mode']=='create') {
return new Promise<boolean>((resolve, reject) => {
let responses:[[string, (string) => void]] = [
['Tak', () => {resolve(true)}],
['Nie', () => {
this.router.navigateByUrl(this.router.url);
resolve(false);
}]
];
this.messages.reportMessage(new Message('Akceptujesz warunki?', false, responses));
});
}
else{
return true;
}
这是负责消息的类的构造函数。
export class Message{
constructor(private text:string, private error:boolean = false,
private responses?:[[string, (string) => void]]){
}
}
一切似乎都正常,但我收到一个错误:
error TS2322: Type '[[string, () => void], [string, () => void]]' is not assignable to type '[[string, (string: any) => void]]'.
Types of property 'length' are incompatible.
Type '2' is not assignable to type '1'.
这很奇怪,因为我的代码与书中的相同。我知道这是一件小事,但我真的不知道如何解决这个问题。有人可以帮忙吗?
【问题讨论】:
标签: javascript arrays typescript tuples