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.

Relaterade artiklar