Pendekatan manakah yang direkomendasikan untuk melakukan hal serupa seperti pencocokan pola di TypeScript? Hal terbaik yang pernah saya lakukan sejauh ini adalah memberikan "tag"
-nilai unik untuk setiap antarmuka tupel dan melakukan pernyataan switch/case berdasarkan itu.
interface First { tag: 'one' }
interface Second { tag: 'two' }
type Third = First | Second
function match<T>(input: Third): T {
switch( input.tag ){
case 'one': {
...
}
case 'two': {
...
}
default: {
...
}
}
}
Menurut pendapat saya, pendekatan ini masih kurang bersahabat dan tidak produktif dalam melakukan hal ini.
Saya sendiri tidak begitu yakin seberapa jauh Anda bisa mendorong ini karena TypeScript bukan tipe yang diketik kelas satu, tapi saya ingin mencobanya.
instanceof
, tapi itu bukan ide yang bagus -- instanceof merupakan penghalang untuk memberikan tiruan yang baik untuk pengujian -- antarmuka alih-alih instanceof adalah kekuatan dari skrip ketikan - person ChaseMoskal   schedule 06.05.2018