Bonjour,
comment déclarer un type TReF pour définir des références de cases pour le plateau d'échecs ?
Pour pouvoir calculer les mouvements il faut 4 constantes tableau, ce qui permet d'afficher le plateau suivant les directions cardinales (NORTH, EAST, SOUTH et WEST):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // point de départ: colonnes et rangées type TFile = 'a'|'b'|'c'|'d'|'e'|'f'|'g'|'h' type TRank = '1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'
Et maintenant comment définir TReF pour que:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 type TDims = TFile | TRank const DIRECTED_FILES: TDim[] = 'abcdefgh'.split('') const DIRECTED_RANKS: TDim[] = '12345678'.split('') const REVERSED_FILES: TDim[] = 'hgfedcba'.split('') const REVERSED_RANKS: TDim[] = '87654321'.split('')
* TRef soit une chaîne de 2 caractères exactement
* TRef[0] apprteinne à l'ensemble TFile, de 'a' à 'h'
* TRef[1] apprteinne à l'ensemble TRank, de '1' à '8'
J'ai essayé:
Le problème, c'est que chaque déclaration de variable de type TRFe requiert d'instancier correctement le générique à chaque fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // générique export type TRef <file extends TFile, rank extends TRank> = `${file}${rank}`
Faudrait il plutôt passer par une fonction (Guard) pour valider les refs à chaque fois qu'on en a besoin, et lever une exception au runtime au lieu du compile time ?
Merci pour vos réponses !
Partager