From 65b23e1e6dc56c76a1773a1ffbc3a99722b705bf Mon Sep 17 00:00:00 2001 From: troy351 <914053923@qq.com> Date: Tue, 24 Apr 2018 14:21:54 +0800 Subject: [PATCH 1/6] add `tsx` extension for tsconfig include --- .../@vue/cli-plugin-typescript/generator/template/tsconfig.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json b/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json index 89d9c4c210..e54f80ef87 100644 --- a/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json +++ b/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json @@ -29,8 +29,10 @@ }, "include": [ "src/**/*.ts", + "src/**/*.tsx", "src/**/*.vue", "tests/**/*.ts" + "tests/**/*.tsx" ], "exclude": [ "node_modules" From 7bb17c1b30dbdaed8613ff926ba9e946ff370c37 Mon Sep 17 00:00:00 2001 From: troy351 <914053923@qq.com> Date: Tue, 24 Apr 2018 15:05:04 +0800 Subject: [PATCH 2/6] Update tsconfig.json --- .../@vue/cli-plugin-typescript/generator/template/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json b/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json index e54f80ef87..bb03e5ec6b 100644 --- a/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json +++ b/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json @@ -31,7 +31,7 @@ "src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", - "tests/**/*.ts" + "tests/**/*.ts", "tests/**/*.tsx" ], "exclude": [ From 242a682375a721be6f550f80ec9aa07692e0c6e7 Mon Sep 17 00:00:00 2001 From: troy351 <914053923@qq.com> Date: Tue, 24 Apr 2018 15:29:51 +0800 Subject: [PATCH 3/6] add `jsxFactory` for tsconfig --- .../cli-plugin-typescript/generator/template/tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json b/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json index bb03e5ec6b..ea9d57c81f 100644 --- a/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json +++ b/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json @@ -3,7 +3,8 @@ "target": "<%- options.useTsWithBabel ? 'esnext' : 'es5' %>", "module": "esnext", "strict": true, - "jsx": "preserve", + "jsx": "preserve", + "jsxFactory": "h", "moduleResolution": "node", <%_ if (options.classComponent) { _%> "experimentalDecorators": true, From 7fd167df667782f578ceedd50dff33787aea687f Mon Sep 17 00:00:00 2001 From: troy351 <914053923@qq.com> Date: Tue, 24 Apr 2018 15:33:06 +0800 Subject: [PATCH 4/6] declare global jsx namespace --- .../generator/template/src/shims.d.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/@vue/cli-plugin-typescript/generator/template/src/shims.d.ts b/packages/@vue/cli-plugin-typescript/generator/template/src/shims.d.ts index 8f6f410263..e8079026d2 100644 --- a/packages/@vue/cli-plugin-typescript/generator/template/src/shims.d.ts +++ b/packages/@vue/cli-plugin-typescript/generator/template/src/shims.d.ts @@ -1,4 +1,15 @@ +import Vue, { VNode } from 'vue' + declare module '*.vue' { - import Vue from 'vue'; - export default Vue; + export default Vue +} + +declare global { + namespace JSX { + interface Element extends VNode {} + interface ElementClass extends Vue {} + interface IntrinsicElements { + [elem: string]: any + } + } } From e7f777bbfb6dc898fa29b689e043b4071f231e70 Mon Sep 17 00:00:00 2001 From: troy351 <914053923@qq.com> Date: Tue, 24 Apr 2018 16:50:09 +0800 Subject: [PATCH 5/6] add tslint disable to prevent log error --- .../cli-plugin-typescript/generator/template/src/shims.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/@vue/cli-plugin-typescript/generator/template/src/shims.d.ts b/packages/@vue/cli-plugin-typescript/generator/template/src/shims.d.ts index e8079026d2..b01561bb4a 100644 --- a/packages/@vue/cli-plugin-typescript/generator/template/src/shims.d.ts +++ b/packages/@vue/cli-plugin-typescript/generator/template/src/shims.d.ts @@ -6,7 +6,9 @@ declare module '*.vue' { declare global { namespace JSX { + // tslint:disable no-empty-interface interface Element extends VNode {} + // tslint:disable no-empty-interface interface ElementClass extends Vue {} interface IntrinsicElements { [elem: string]: any From bd6fd40fb7de82daf52076f6ee933f7294513251 Mon Sep 17 00:00:00 2001 From: troy351 <914053923@qq.com> Date: Fri, 27 Apr 2018 10:07:14 +0800 Subject: [PATCH 6/6] remove unnecessary `jsxFactory` --- .../cli-plugin-typescript/generator/template/tsconfig.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json b/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json index ea9d57c81f..bb03e5ec6b 100644 --- a/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json +++ b/packages/@vue/cli-plugin-typescript/generator/template/tsconfig.json @@ -3,8 +3,7 @@ "target": "<%- options.useTsWithBabel ? 'esnext' : 'es5' %>", "module": "esnext", "strict": true, - "jsx": "preserve", - "jsxFactory": "h", + "jsx": "preserve", "moduleResolution": "node", <%_ if (options.classComponent) { _%> "experimentalDecorators": true,