Skip to content

Intl.DisplayNames missing #41338

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

Closed
MichalBryxi opened this issue Oct 30, 2020 · 9 comments
Closed

Intl.DisplayNames missing #41338

MichalBryxi opened this issue Oct 30, 2020 · 9 comments
Labels
Working as Intended The behavior described is the intended behavior; this is not a bug

Comments

@MichalBryxi
Copy link

MichalBryxi commented Oct 30, 2020

Search Terms: Intl.DisplayNames, "Property 'DisplayNames' does not exist on type 'typeof Intl'."

Code

let languageNames = new Intl.DisplayNames(['en'], { type: 'language' });

Expected behavior: TS knows DisplayNames and does appropriate type checking.

Actual behavior: TS displays error: Property 'DisplayNames' does not exist on type 'typeof Intl'.

Playground Link: https://www.typescriptlang.org/play?ts=4.1.0-dev.20201030#code/DYUwLgBMCGB2DmBXa8QDloFsQGcIF4JYQB3CASVjGADoARASxwAcYBPDbHACgG0ByELH4BdADQQA3hDBtmIAFwR+MBMlT8IAXwCUAbgBQECEA
Related Issues: N/A

Respective MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames
Respective TC39: https://tc39.es/proposal-intl-displaynames/

@MartinJohns
Copy link
Contributor

Type definitions for drafts are usually not added to the type definitions provided by TypeScript.

In the TypeScript-DOM-lib-generator project they list as a requirement for additions:

  • Is the IDL source from WHATWG?
    • Are the additions available in at least two of Firefox, Safari and Chromium?
  • Is the IDL source from W3C?
    • What stage of the W3C process is the proposal for these changes: We aim for Proposed recommendation, but can accept Candidate recommendation for stable looking proposals.
    • If it's at Working draft the additions available in all three of Firefox, Safari and Chromium

Neither Firefox nor Safari support this feature. There's no mention of TC39, but it's likely that the same principle applies.


You can use declaration merging to make the types available in your code base.

@RyanCavanaugh RyanCavanaugh added the Working as Intended The behavior described is the intended behavior; this is not a bug label Nov 10, 2020
@typescript-bot
Copy link
Collaborator

This issue has been marked 'Working as Intended' and has seen no recent activity. It has been automatically closed for house-keeping purposes.

TimvdLippe added a commit to TimvdLippe/TypeScript that referenced this issue May 10, 2021
TimvdLippe added a commit to TimvdLippe/TypeScript that referenced this issue May 10, 2021
@TimvdLippe
Copy link
Contributor

Can we reopen this issue for #44022 ?

@sroucheray
Copy link
Contributor

It is now supported in all major browser versions https://caniuse.com/?search=Intl.DisplayNames and is referenced in ECMA402 https://tc39.es/ecma402/#intl-displaynames-objects. I think this might be time to reopen this issue.

@SchmidtDawid
Copy link

Why this is still causing problems? How to fix it?

@j-ulrich
Copy link

Should be fixed with TypeScript 4.5 according to PR #45647

@MichalBryxi
Copy link
Author

MichalBryxi commented May 31, 2023

TS playground v5.0.4 still says:

Property 'DisplayNames' does not exist on type 'typeof Intl'

@MartinJohns
Copy link
Contributor

@MichalBryxi It works just fine in the Playground when you target an ES version that supports it.

@MichalBryxi
Copy link
Author

MichalBryxi commented Jun 1, 2023

Ah! So for future travelers: Minimum requirements that seem to work:

  • TS v4.5.5 (supposedly v4.5 should be enough, but can't verify in the live playground)
  • Target: ES2020

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Working as Intended The behavior described is the intended behavior; this is not a bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants