Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Support ES6 built-in symbols#1978

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
JsonFreeman merged 44 commits intomasterfromesSymbols
Feb 18, 2015
Merged

Support ES6 built-in symbols#1978

JsonFreeman merged 44 commits intomasterfromesSymbols
Feb 18, 2015

Conversation

@JsonFreeman
Copy link
Contributor

This change adds type checking support for properties whose names are the built-in ES symbols. It allows you to create objects like:

varobj={[Symbol.toStringTag](){return"";}}

And you get the right type when you index:

obj[Symbol.toStringTag](0);// Error because the method expected no arguments

I've also added a new keyword for the symbol primitive type, as well as type guard support, errors for all the operators ,etc. To see the full design discussion, see#980.

This pull requestfixes#1750, and#1863. However, strong type information is only available for the built-in ES6 symbols (properties of the global Symbol object).

This does not cover symbol indexers, which allows an object to act as a map with arbitrary symbol keys.

I also did my best to allow symbol polyfilling to work on the type side, provided that the provider of the polyfill also provide the typings for the global Symbol object.

I recommend going through the pull request commit-by-commit, although some commits were experiments that were largely reverted later on. This is mainly true for the following two commits, so feel free to skip them if you like:

  • Allow Symbol indexer in ES6
  • Create global Symbol type

SlurpTheo reacted with thumbs up emoji

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Space beforeOtherwise

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

someTypeHasKind

@DanielRosenwasser
Copy link
Member

👍

JsonFreeman added a commit that referenced this pull requestFeb 18, 2015
@JsonFreemanJsonFreeman merged commitaa13a97 intomasterFeb 18, 2015
@JsonFreemanJsonFreeman deleted the esSymbols branchFebruary 18, 2015 21:19
@Vadorequest
Copy link

👍

@microsoftmicrosoft locked and limited conversation to collaboratorsJun 18, 2018
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Symbols should not be allowed as operands of arithmetic operations.

6 participants

@JsonFreeman@DanielRosenwasser@Vadorequest@yuit@msftclas

[8]ページ先頭

©2009-2025 Movatter.jp