Microsoft/TypeScript

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

Open

#49,113 建立於 2022年5月14日

在 GitHub 查看
 (2 留言) (0 反應) (0 負責人)TypeScript (6,726 fork)batch import
BugDomain: lib.d.tsHelp Wanted

倉庫指標

Star
 (48,455 star)
PR 合併指標
 (平均合併 6天 17小時) (30 天內合併 9 個 PR)

描述

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.

貢獻者指南