I try to create a function to create a piece of chess almost like the document.createElement:
class pawn extends piece {
}
class bishop extends piece {
}
class rook extends piece {
}
class king extends piece {
}
class queen extends piece {
}
class knigth extends piece {
}
export interface pieces {
"pawn": pawn
"bishop": bishop
"rook": rook
"king": king
"queen": queen
"knigth": knigth
}
export function createPiece<K extends keyof pieces>(pieceName: K, options?: pieceInit): pieces[K]{
/// ???
}
But I don't know what I need to return in my createPiece function... I try
export function createPiece<K extends keyof pieces>(pieceName: K, options?: pieceInit): pieces[K]{
return pieces[pieceName]
}
But I got the following error : 'pieces' only refers to a type, but is being used as a value here
My goal is :
const piece1:pawn = createPiece("pawn");
const piece2:queen = createPiece("queen");
.
.
.