{"action":"opened","issue":{"url":"https://api.github.com/repos/vuejs/babel-plugin-transform-vue-jsx/issues/165","repository_url":"https://api.github.com/repos/vuejs/babel-plugin-transform-vue-jsx","labels_url":"https://api.github.com/repos/vuejs/babel-plugin-transform-vue-jsx/issues/165/labels{/name}","comments_url":"https://api.github.com/repos/vuejs/babel-plugin-transform-vue-jsx/issues/165/comments","events_url":"https://api.github.com/repos/vuejs/babel-plugin-transform-vue-jsx/issues/165/events","html_url":"https://github.com/vuejs/babel-plugin-transform-vue-jsx/issues/165","id":386765062,"node_id":"MDU6SXNzdWUzODY3NjUwNjI=","number":165,"title":"tsx dynamic tag name build error","user":{"login":"troy351","id":8372385,"node_id":"MDQ6VXNlcjgzNzIzODU=","avatar_url":"https://avatars1.githubusercontent.com/u/8372385?v=4","gravatar_id":"","url":"https://api.github.com/users/troy351","html_url":"https://github.com/troy351","followers_url":"https://api.github.com/users/troy351/followers","following_url":"https://api.github.com/users/troy351/following{/other_user}","gists_url":"https://api.github.com/users/troy351/gists{/gist_id}","starred_url":"https://api.github.com/users/troy351/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/troy351/subscriptions","organizations_url":"https://api.github.com/users/troy351/orgs","repos_url":"https://api.github.com/users/troy351/repos","events_url":"https://api.github.com/users/troy351/events{/privacy}","received_events_url":"https://api.github.com/users/troy351/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-12-03T11:01:54Z","updated_at":"2018-12-03T11:01:54Z","closed_at":null,"author_association":"NONE","body":"Original issue here vuejs/vue-cli#3067\r\n\r\n### Steps to reproduce\r\n- create a new project with `vue-cli` with only babel and typescript (use class style component).\r\n- update dependencies to the lateset version. **this is important !!!**\r\n- remove `template` field and add render code in `App.vue`\r\n```tsx\r\nrender() {\r\n    const obj = {\r\n      tag: \"HelloWorld\"\r\n    };\r\n\r\n    const TagName = obj.tag;\r\n    return <TagName class=\"name\" />;\r\n  }\r\n```\r\n\r\n### What is expected?\r\nNo Error\r\n\r\n### What is actually happening?\r\nError `Type '{ class: string; }' is not assignable to type '{}'`\r\n\r\n---\r\nHowever, the codes below works fine\r\n```tsx\r\nrender() {\r\n    // this works\r\n    const TagName = \"HelloWorld\";\r\n    return <TagName class=\"name\" />;\r\n  }\r\n```\r\n```tsx\r\nrender() {\r\n    // this also works\r\n    const obj = {\r\n      tag: \"HelloWorld\"\r\n    };\r\n\r\n    const TagName = obj.tag;\r\n    return <TagName />;\r\n  }\r\n```"}}
{"actor":{"display_login":"troy351"}}