Kaedah keluaran untuk mentakrifkan fungsi jenis berdasarkan syarat dalam TypeScript
P粉764836448
2023-08-14 18:18:08
<p>Saya cuba mentakrifkan jenis output untuk fungsi saya dan saya mahu menggunakan bendera <kod>kepadaNumberIfNeeded</code> /code> jenis Tetapkan syarat antara, dengan mengandaikan bahawa jika <code>toNumberIfNeeded</code> fungsi ini akan mengembalikan jenis angka, jika tidak, ia akan mengembalikan jenis rentetan. Apa patut saya buat? </p>
<pre class="brush:php;toolbar:false;">Pilihan antara muka {
huruf besar?: boolean;
filterSpecialChars?: boolean;
toNumberIfNeeded?: boolean;
}
eksport const textTransformer = (teks: rentetan, pilihan?: Pilihan) =>
const { huruf besar, filterSpecialChars, toNumberIfNeeded} = pilihan ||.
//Kod logik pemprosesan saya
kembali keNumberIfNeeded ? parseInt(text) : text;
}</pre>
<p>Contoh yang dijangkakan:</p>
<pre class="brush:php;toolbar:false;">textTransformer('hello'); // Kembalikan jenis rentetan
textTransformer('123', { toNumberIfNeeded: true }); // Kembalikan jenis angka</pre>
Anda boleh refactor
textTransformer()
方法,接受一个泛型参数,并使用条件类型来检查toNumberIfNeeded
是否为true
或false
。我认为 TypeScript 无法自动缩小返回值的类型。你必须使用类型断言,否则返回类型将被推断为string | number
.