-
Notifications
You must be signed in to change notification settings - Fork 13.1k
Closed
Labels
BugA bug in TypeScriptA bug in TypeScriptFixedA PR has been merged for this issueA PR has been merged for this issueHelp WantedYou can do thisYou can do this
Milestone
Description
TypeScript Version: 2.4.0
compilerOptions.target = ES5
Code
const obj = {};
const a = {
...obj,
prop() {
return {
...obj,
metadata: 213
}
}
};Expected behavior:
It compiles and transpiles the object spread operator to a call to Object.assign.
Actual behavior:
The object spread operator is not transpiled but simply kept. This can lead to the following error:
TypeError: Cannot read property 'kind' of undefined
at visitObjectLiteralExpression (C:\_myplace\next\graphql-proxy\node_modules\typescript\lib\typescript.js:56775:34)
at visitJavaScript (C:\_myplace\next\graphql-proxy\node_modules\typescript\lib\typescript.js:55245:28)
at visitor (C:\_myplace\next\graphql-proxy\node_modules\typescript\lib\typescript.js:55182:24)
at visitNode (C:\_myplace\next\graphql-proxy\node_modules\typescript\lib\typescript.js:49197:23)
at Object.visitEachChild (C:\_myplace\next\graphql-proxy\node_modules\typescript\lib\typescript.js:49479:46)
at visitReturnStatement (C:\_myplace\next\graphql-proxy\node_modules\typescript\lib\typescript.js:55345:23)
at visitJavaScript (C:\_myplace\next\graphql-proxy\node_modules\typescript\lib\typescript.js:55293:28)
at visitor (C:\_myplace\next\graphql-proxy\node_modules\typescript\lib\typescript.js:55182:24)
at Object.visitNodes (C:\_myplace\next\graphql-proxy\node_modules\typescript\lib\typescript.js:49248:48)
at transformFunctionBody (C:\_myplace\next\graphql-proxy\node_modules\typescript\lib\typescript.js:56282:44)
Problem source:
The esnext transformer cuts off at method declarations within object literals that have an spread element, thus it never sees the inner object literal node.
aluanhaddad
Metadata
Metadata
Assignees
Labels
BugA bug in TypeScriptA bug in TypeScriptFixedA PR has been merged for this issueA PR has been merged for this issueHelp WantedYou can do thisYou can do this