【发布时间】:2019-03-16 13:43:19
【问题描述】:
这感觉像是一个非常愚蠢的错误,但我有一个打字稿类:
export class Stat{
abbr: StatType;
score: number;
mod: number;
get name(): string { return StatType[this.abbr]; }
}
“name”属性是只读的,对吗?
但是,在模拟一些“统计信息”时,我得到了我没有定义“名称”的错误。
const stats: Stat[] = [{
abbr: StatType.Str,
score: 15,
mod: 2
}]
这会产生错误:error TS2741: Property 'name' is missing in type '{ abbr: StatType.Str; score: number; mod: number; }' but required in type 'Stat' 但是如果属性“name”是只读的,为什么我必须为它分配一个值?
如果我分配了一个值,然后使用该值,则 get() 属性将被完全忽略。
我做错了吗?如何让 TS 相信我不需要提供 name 属性?
枚举是这样定义的:
export enum StatType{
Str,
Dex,
Con,
Int,
Wis,
Cha
}
谢谢!
【问题讨论】:
标签: typescript