IMO, salah satu perhatian utama dari bahasa TypeScript adalah untuk mendukung kode JavaScript vanilla yang ada. Ini kesan yang saya rasakan pada pandangan pertama. Lihatlah fungsi JavaScript berikut yang benar-benar valid:
Catatan: Saya tidak mengatakan bahwa saya menyukai pendekatan ini. Saya hanya mengatakan ini adalah kode JavaScript yang valid.
function sum(numbers) {
var agregatedNumber = 0;
for(var i = 0; i < arguments.length; i++) {
agregatedNumber += arguments[i];
}
return agregatedNumber;
}
Jadi, kami menggunakan fungsi ini dengan sejumlah argumen:
console.log(sum(1, 5, 10, 15, 20));
Namun, ketika saya mencobanya dengan TypeScript Playground , ini memberikan kesalahan waktu kompilasi.
Saya berasumsi bahwa ini adalah bug. Mari kita asumsikan bahwa kita tidak memiliki masalah kompatibilitas. Lalu, adakah cara untuk menulis jenis fungsi ini dengan argumen terbuka? Seperti params
fitur di C #?
javascript
typescript
tugberk
sumber
sumber
numbers
parameter bernama ? Anda tidak melakukan apapun dengannya.Jawaban:
Cara TypeScript melakukan ini adalah dengan menempatkan operator elipsis (
...
) sebelum nama argumen. Di atas akan ditulis sebagai,Ini kemudian akan mengetik cek dengan benar dengan
sumber
Selain jawaban @chuckj: Anda juga dapat menggunakan
arrow function expression
di TypeScript (semacam alambda
di Java / .NET)sumber
Di Typecript itu adalah konsep Rest Parameter , itu adalah parameter yang menerima banyak nilai dengan tipe yang sama.Jika kita menargetkan typescript maka kita harus menulis kode ECMAScript 6 standar, kemudian transpiler typescript mengubahnya menjadi kode java script yang setara ( yang standar ECMAScript 5 ). Jika kita menggunakan skrip ketikan maka kita harus menggunakan tiga titik (...) preferx dengan nama variabel restparameter, seperti fungsi jumlah (... angka: angka []), maka itu akan berhasil.
Catatan: Parameter Istirahat harus parameter terakhir dalam daftar parameter. Demikian juga jumlah fungsi (nama: string, usia: angka, ... angka: angka []).
sumber