`esModuleInterop: true` cause runtime error
@rbuckton já está trabalhando nisso.
Desde 14/12/2020.
Avaliação
Esta issue ainda não foi avaliada.
Descrição
Hi there, problems happened when I toggled esModuleInterop flag for my project, I have to because one library it depends enabled this flag.
TypeScript Version: 2.7+
Search Terms:
esModuleInterop
allowSyntheticDefaultImports
Code
import * as apmStar from 'elastic-apm-node'
import SentryDefault from '@sentry/node'
apmStar.start // undefined
SentryDefault // undefined
Explains:
- for
@sentry/nodeit is an es module, soesModuleInterophas no effects on it, but withallowSyntheticDefaultImportsyou can import its default, which property it does not export, so you got an undefined error at runtime - for
elastic-apm-node, it is a commonjs module, and it exports an instance,startis a prototype method of it, so it is lost after__importStar.
But these problems are not informed in the document, guess we could discourage enabling it for library projects?
And I wonder if we could improve type checking for these situations, for example:
- for
apmStar, it is imported as esmodule namespace, so an type error could be thrown when accessing.startmethod on it. - for
SentryDefault, it is a esmodule,allowSyntheticDefaultImportscould be disabled for it
Expected behavior:
Error emitted at compiling time
Actual behavior:
Compiled successfully, but got an error at runtime.
Playground Link:
https://repl.it/@themez1/esModuleInteropTest
Related Issues:
https://github.com/microsoft/TypeScript/issues/28009
https://github.com/microsoft/TypeScript/issues/33954
https://github.com/microsoft/TypeScript/issues/36026
- Linguagem predominante
- Go
- Estrelas
- 111k
- Forks
- 14.4k
- Merge médio
- 1d 19h
- PRs com merge (30d)
- 117
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microsoft/TypeScript
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
microsoft/TypeScript#64322 · 2 comentários · 1 reação · 2 responsáveis ·
-
Possible Improvement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
microsoft/TypeScript#64278 · 1 comentário · 1 reação ·
-
Docs
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
microsoft/TypeScript#64118 · 1 comentário ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
microsoft/TypeScript#64094 ·
-
Docs
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
microsoft/TypeScript#63959 · 5 comentários ·
Todas as issues de microsoft/TypeScript
Issues semelhantes
-
optimization optimization:agents-md-curator
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
githubnext/gh-aw-cao#13143 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
blinklabs-io/bursa#904 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
yanet-platform/ipfw-go#129 ·
-
bug confmap/provider/googlesecretmanagerprovider needs triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
open-telemetry/opentelemetry-collector-contrib#51273 · 2 comentários ·
-
bug: AI Gateway client filter lists "Unknown" twice when NULL and literal Unknown clients coexist Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 90/100