-1
J'ai une question, comment obtenir le type d'élément de tableau via les types mappés Par exemple ici lorsque j'utilise la méthode array
je peux déduire le type d'élément de tableau, mais comment fait en arrayStr
méthode? Et pourquoi dans cet exemple aStrId a le type 'jamais'?TypeScript: Comment déduire type d'élément de tableau en utilisant des types mappés
class One<T> {
constructor(
data: T
) { }
array<R>(getter: ((obj: T) => R[])): Two<R> {
return null;
}
arrayStr<K extends keyof T, R>(name: K, idField: keyof R): Two<R> {
return null;
}
}
class Two<T> {
getItem(): T {
return null;
}
getAsArray(): T[] {
return [];
}
}
const data = {
a: [{ q: 1 }, { q: 2 }]
};
const one = new One(data);
const a = one.array(p => p.a);
const aValue = a.getItem().q;
const oneStr = new One(data);
const aStre = oneStr.arrayStr('a');
const aStrValue = aStre.getItem().q;
const oneStrId = new One(data);
const aStrId = oneStrId.arrayStr('a', 'q');
const aStrValueId = aStre.getItem().q;
J'ai de la difficulté à comprendre la question. Pouvez-vous poster le code directement avec des endroits spécifiques que vous rencontrez des problèmes? Qu'est-ce que la méthode 'arrayStr()' est censée faire? La signature est étrange (il ne semble pas y avoir de moyen de savoir ce que 'R' est censé être) et l'implémentation (' return null') ne me donne aucun indice. – jcalz