【发布时间】:2021-06-28 14:09:33
【问题描述】:
我正在使用纯 TypeScript 制作一个 Black Jack 应用程序,但在牌组内创建卡片时出现错误。
到目前为止,我有 2 个类和 2 个枚举可以使用。
export enum Color {
Hearts = 0,
Spades,
Diamonds,
Clubs,
Count,
Hidden,
}
export enum Value {
Two = 0,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
Ten,
Knight,
Queen,
King,
Ace,
Count,
Hidden,
}
export class Card {
private color: Color;
private value: Value;
private isHidden: Boolean;
constructor(color: Color, value: Value) {
this.color = color;
this.value = value;
this.isHidden = true;
}
}
import { Card, Color, Value } from './Card';
export default class Deck {
private cards: Array<Card> = [];
public Deck = (): void => {
for (let colorIx = 0; colorIx < Color.Count; colorIx++) {
for (let valueIx = 0; valueIx < Value.Count; valueIx++) {
let c = new Card(Color[colorIx], Value[valueIx]);
this.AddCard(c);
}
}
};
public AddCard = (card: Card): void => {
this.cards.push(card);
};
}
这部分是出错的地方。
let c = new Card(Color[colorIx], Value[valueIx]);
它,给我一个错误说:
“字符串”类型的参数不能分配给类型参数 “颜色”。
但奇怪的是,Value 枚举根本没有给我一个错误,而且据我所知,它们的构造几乎相同。
有谁知道怎么回事?
为什么一个枚举在构造函数中被接受(值)而另一个(颜色)不被接受?
【问题讨论】:
标签: typescript enums constructor