Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

proposal-record-tuple #39831

Open
Kingwl opened this issue Jul 30, 2020 · 7 comments
Open

proposal-record-tuple #39831

Kingwl opened this issue Jul 30, 2020 · 7 comments
Labels
Suggestion An idea for TypeScript Waiting for TC39 Unactionable until TC39 reaches some conclusion

Comments

@Kingwl
Copy link
Contributor

Kingwl commented Jul 30, 2020

https://github.com/tc39/proposal-record-tuple is stage-2.
I haven't found related issue and I created this.
I'm a little worry about the global Record object and our utils type Record<>.

@RyanCavanaugh RyanCavanaugh added Suggestion An idea for TypeScript Waiting for TC39 Unactionable until TC39 reaches some conclusion labels Jul 30, 2020
@RyanCavanaugh
Copy link
Member

FYI we're tracking these as part of our TC39 committee attendance, so there's not really a need to have TS issues for every stage 2 proposal - we don't want to fracture the discussion.

@armanozak
Copy link

Hi @RyanCavanaugh,

I understand, but also share @Kingwl's concern. This is not a regular TC39 proposal. It introduces a global constructor which may cause a breaking change in TypeScript. It would be kind of you if you could share TypeScript's stance about the naming. Does it look like Record is going to be the eventual name for that constructor or is it still subject to change?

@Kingwl
Copy link
Contributor Author

Kingwl commented Aug 2, 2020

@armanozak I think it's might be ok. The ctor 'Record' is value and Record<> is type. TypeScript is work fine with this case. As the result, the type of record might be 'record', the lower case. Like number and Number, string and String.

@Kingwl
Copy link
Contributor Author

Kingwl commented Aug 2, 2020

But i'm not sure the other case. eg: Array ctor has type parameter, But seems Record cannot.

@armanozak
Copy link

Hi @Kingwl,

The type is record and I am not worried about that. I am not even worried about the wrapper object type (like String, Number, and Boolean), because it is stated here that there will be no wrapper object instantiation.

However, TypeScript Record is not really a match for the proposed Record and that would cause confusion, don't you agree?

@Jack-Works
Copy link
Contributor

Working on this #45546

@gioragutt
Copy link

@armanozak have there been cases where there was such a big possible breaking change before?

How is TypeScript supposed to handle such a change? Hypothetically speaking, if it'll actually happen, what would be the protocol for that? Major change and GL codemodding the broken changes?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Suggestion An idea for TypeScript Waiting for TC39 Unactionable until TC39 reaches some conclusion
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants