La méthode de sortie permettant de définir des fonctions de type basées sur des conditions dans TypeScript
P粉764836448
2023-08-14 18:18:08
<p>J'essaie de définir un type de sortie pour ma fonction et je souhaite utiliser l'indicateur <code>toNumberIfNeeded</code> entre le <code>string</code> /code> types Définit les conditions entre, en supposant que si <code>toNumberIfNeeded</code> est vrai, cette fonction renverra un type numérique, sinon elle renverra un type de chaîne. Que dois-je faire? </p>
<pre class="brush:php;toolbar:false;">Options d'interface {
majuscule ? : booléen ;
filterSpecialChars?: booléen;
toNumberIfNeeded? : booléen ;
}
export const textTransformer = (texte : chaîne, options ? : Options) =>
const { majuscules, filterSpecialChars, toNumberIfNeeded} = options ||
//Mon code logique de traitement
retourner àNumberIfNeeded ? parseInt(text) : texte;
}</pré>
<p>Exemple attendu :</p>
<pre class="brush:php;toolbar:false;">textTransformer('hello'); // Type de chaîne de retour
textTransformer('123', { toNumberIfNeeded: true }); // Renvoie le type numérique</pre>
Vous pouvez refactoriser
textTransformer()
方法,接受一个泛型参数,并使用条件类型来检查toNumberIfNeeded
是否为true
或false
。我认为 TypeScript 无法自动缩小返回值的类型。你必须使用类型断言,否则返回类型将被推断为string | number
.