Microsoft/TypeScript

`.length` property of function literals is not `readonly`

Open

#49.113 aperta il 14 mag 2022

Vedi su GitHub
 (2 commenti) (0 reazioni) (0 assegnatari)TypeScript (6726 fork)batch import
BugDomain: lib.d.tsHelp Wanted

Metriche repository

Star
 (48.455 star)
Metriche merge PR
 (Merge medio 6g 17h) (9 PR mergiate in 30 g)

Descrizione

Bug Report

Function .length property is inconsistently readonly depending on whether Function constructor is used or not.

🔎 Search Terms

function length readonly

🕗 Version & Regression Information

v4.6.2 (haven't checked older versions)

⏯ Playground Link

Playground link with relevant code

💻 Code

const f = new Function()
f.length = 1 // Error here: Cannot assign to 'length' because it is a read-only property.

const f2 = () => {}
f2.length = 1 // No error here

🙁 Actual behavior

The length property of the function created with new Function() is readonly while the length property of function literals is not.

🙂 Expected behavior

Both length properties should be readonly. Alternative both could be non-readonly but that seems worse since JS doesn't modify the length when assigning a value.

Guida contributor