Disons que j'ai deux ou plusieurs alias de type, comme tel :
declare type A = string;
declare type B = string;
J'ai des variables de ces types, ainsi que des fonctions qui opèrent sur elles.
const a1: A = "example of a";
const b1: B = "example of b";
function withA(a: A){
console.log(a);
}
function withB(b: B){
console.log(b);
}
Je voudrais que le code suivant soit une erreur, mais il ne l'est pas :
withA(b1);
withB(a1);
Comment puis-je y parvenir ? Je dois également être en mesure d'initialiser les variables avec une chaîne de caractères (je suppose avec un cast). Cependant, une fois initialisés, je ne veux pas que les types soient "implicitement équivalents" et je veux que le compilateur interdise leur utilisation interchangeable.
J'aimerais également ne pas avoir à utiliser de classes, comme décrit ici : TypeScript - types de chaînes spécifiques