Har Typescript operatörsöverlagring?
Min fråga är om det finns operatoröverlagring i TypeScript, om det finns skulle jag kunna ge ett exempel eller en länk där du kan läsa om det.
Svar #1
Nej, det existerar inte. Det är mycket osannolikt att det kommer att existera om det inte finns en tydlig specifikation på hur det kan implementeras i ren JavaScript.
Svar #2
finns det operatoröverlagring i TypeScript
Nej, och TypeScript-projektet verkar inte intresserat av att implementera denna nya funktion förrän den först läggs till i JavaScript. (Jag kan respektera att man vill undvika att projektets omfattning växer.)
Jag hoppades att en ny version av ECMAScript skulle implementera operatoröverlagring. Se detta språkförslag: https://github.com/tc39/proposal-operator-overloading
Uppdaterad 2024:
Det har beslutats att Återkalla förslaget.
Jag tror att jag har hittat mötesanteckningarna med detaljerna om varför det inte kommer att läggas till i ECMAScript: https://github.com/tc39/notes/blob/main/meetings/2023-11/november-28.md#withdrawing-operator-overloading
Talarnas sammanfattning av huvudpunkter
- Operatoröverladdning föreslogs för att lösa många problem med JS, inklusive att möjliggöra olika numeriska typer, enhetsbärande beräkningar inklusive CSS-enheter, mer ergonomisk vektor-/matrisbearbetning och generalisering av BigInt/Decimal.
- Flera underhållare av JavaScript-motorer ansåg att operatoröverlagring inte har rätt kostnads-/nyttoförhållande för att vara värt att implementera. Det skulle vara mycket svårt att implementera effektivt, särskilt med scoping- och säkerhetsfunktionerna.
- Med tanke på positionerna i kommittén om operatoröverlastning föreslog DE att dra tillbaka operatoröverlastning, vilket kan bana väg för förslag som Decimal, där 'om man ska överlasta operatorer' är en relevant designfråga.
Slutsats
- TC39 nådde enighet om att dra tillbaka förslaget om operatoröverlagring, med förbehåll för SYG:s bekräftelse, vilken gavs efter mötet.
- Återkallelsen beror på de höga kostnaderna för implementationer och den höga komplexiteten i förslaget om operatoröverlagring, eller något annat möjligt förslag inom detta område.
- Operatoröverlagring kan komma att återinföras till TC39 i framtiden (särskilt om implementerarnas uppfattning om kostnads-/nyttoförhållandet förändras), men kommittén förväntar sig för närvarande inte att lägga tid på att undersöka operatoröverlagring.