Die Ausgabemethode zum Definieren von Typfunktionen basierend auf Bedingungen in TypeScript
P粉764836448
2023-08-14 18:18:08
<p>Ich versuche, einen Ausgabetyp für meine Funktion zu definieren und möchte das Flag <code>toNumberIfNeeded</code> zwischen dem <code>string</code> verwenden. /code> setzt Bedingungen zwischen, vorausgesetzt, dass diese Funktion einen numerischen Typ zurückgibt, wenn <code>toNumberIfNeeded</code> Was soll ich machen? </p>
<pre class="brush:php;toolbar:false;">Schnittstellenoptionen {
Großbuchstaben?: boolean;
filterSpecialChars?: boolean;
toNumberIfNeeded?: boolean;
}
export const textTransformer = (text: string, options?: Options) =>
const { Uppercase, filterSpecialChars, toNumberIfNeeded} = Optionen || {};
//Mein Verarbeitungslogikcode
return toNumberIfNeeded ? parseInt(text) : text;
}</pre>
<p>Erwartetes Beispiel:</p>
<pre class="brush:php;toolbar:false;">textTransformer('hello'); // String-Typ zurückgeben
textTransformer('123', { toNumberIfNeeded: true }); // Numerischen Typ zurückgeben</pre>
你可以重构
textTransformer()
方法,接受一个泛型参数,并使用条件类型来检查toNumberIfNeeded
是否为true
或false
。我认为 TypeScript 无法自动缩小返回值的类型。你必须使用类型断言,否则返回类型将被推断为string | number
。