gpt4 book ai didi

javascript - 元组类型的问题

转载 作者:行者123 更新时间:2023-12-03 00:03:02 25 4
gpt4 key购买 nike

最近我尝试遵循 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'.

很奇怪,我的代码和书上的一样。我知道这是一件小事,但我真的不知道如何解决这个问题。有人可以帮忙吗?

最佳答案

Types of property 'length' are incompatible.
Type '2' is not assignable to type '1'.

let responses:[[string, (string) => void]]

声明一个只有一个元组的数组类型。如果您尝试使用除一个元素之外的任何元素来初始化它,将会出错。

您需要更改您的响应声明:

let responses: [string, (string) => void][]

let responses: Array<[string, (string) => void]>

关于javascript - 元组类型的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55090871/

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