【发布时间】:2021-05-05 18:31:50
【问题描述】:
我目前正在学习打字稿,并遇到了以下函数的打字稿错误:
export interface WebspaceBackupArtifact {
readonly date?: string;
readonly name?: string | null;
readonly path?: string | null;
readonly type?: string | null;
}
interface WebspaceBackupArtifactExtended extends WebspaceBackupArtifact {
size: string;
type: string;
}
const selected = [] as WebspaceBackupArtifactExtended[],
const totalSize = (): number => {
return selected
.filter(
(artifact: WebspaceBackupArtifactExtended) =>
artifact.type !== 'directory',
)
.reduce(
(accumulator: number, artifact: WebspaceBackupArtifactExtended) =>
accumulator + artifact.size,
0,
);
}
上述函数产生以下错误:
/app/src/views/myfile.vue(394,11) 中的错误:没有与此匹配的重载 称呼。重载 1 of 3, '(callbackfn: (previousValue: WebspaceBackupArtifactExtended,当前值: WebspaceBackupArtifactExtended,currentIndex:数字,数组: WebspaceBackupArtifactExtended[]) => WebspaceBackupArtifactExtended, 初始值:WebspaceBackupArtifactExtended): WebspaceBackupArtifactExtended',给出了以下错误。我的项目 | '(累加器:数字,工件: WebspaceBackupArtifactExtended) => string' 不可分配给 '(previousValue: WebspaceBackupArtifactExtended, currentValue:WebspaceBackupArtifactExtended,currentIndex:数字, 数组:WebspaceBackupArtifactExtended[]) => WebspaceBackupArtifactExtended'。我的项目 |种类 参数 'accumulator' 和 'previousValue' 不兼容。 我的项目 |类型“WebspaceBackupArtifactExtended”不是 可分配给类型“数字”。
和
我的项目 |重载 2 of 3, '(callbackfn: (previousValue: 数字,currentValue:WebspaceBackupArtifactExtended,currentIndex: 数字,数组:WebspaceBackupArtifactExtended[]) => 数字, initialValue: number): number',给出了以下错误。我的项目
| '(累加器:数字,工件: WebspaceBackupArtifactExtended) => string' 不可分配给 '(previousValue: number, currentValue: WebspaceBackupArtifactExtended,currentIndex:数字,数组: WebspaceBackupArtifactExtended[]) => number'。我的项目 |
类型“字符串”不可分配给类型“数字”。我的项目 |
392 | ) 我的项目 | 393 | .reduce(我的项目 | > 394 | (累加器:数字,神器: WebspaceBackupArtifactExtended) => 我的项目 | |
^ 我的项目 | 395 |累加器 + artifact.size, 我的项目 | 396 | 0, 我的项目 | 397 |
);
为什么在我定义了类型之后它会抛出这些错误?我尝试更改此行:
(accumulator: number, artifact: WebspaceBackupArtifactExtended) =>
到
(previousValue: WebspaceBackupArtifactExtended, currentValue: WebspaceBackupArtifactExtended) =>
但它仍然导致相同的错误消息...
【问题讨论】:
标签: javascript typescript ecmascript-6