diff --git a/src/language-vue/embed.js b/src/language-vue/embed.js
index f1c48fa2..2f73eb75 100644
--- a/src/language-vue/embed.js
+++ b/src/language-vue/embed.js
@@ -28,7 +28,7 @@ function embed(path, print, textToDoc, options) {
const langAttr = node.attrs.find(attr => attr.name === "lang");
if (!langAttr) {
parser = "babylon";
- } else if (langAttr.value === "ts") {
+ } else if (langAttr.value === "ts" || langAttr.value === "tsx") {
parser = "typescript";
}
}
diff --git a/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap b/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap
index 8a428a27..bdb5d7c0 100644
--- a/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap
+++ b/tests/multiparser_vue/__snapshots__/jsfmt.spec.js.snap
@@ -1,5 +1,58 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+exports[`lang-ts.vue 1`] = `
+
+ {{foo}}
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ {{foo}}
+
+
+
+
+`;
+
+exports[`lang-tsx.vue 1`] = `
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+`;
+
exports[`template-bind.vue 1`] = `
diff --git a/tests/multiparser_vue/lang-ts.vue b/tests/multiparser_vue/lang-ts.vue
new file mode 100644
index 00000000..c9db0056
--- /dev/null
+++ b/tests/multiparser_vue/lang-ts.vue
@@ -0,0 +1,10 @@
+
+ {{foo}}
+
+
+
+
diff --git a/tests/multiparser_vue/lang-tsx.vue b/tests/multiparser_vue/lang-tsx.vue
new file mode 100644
index 00000000..665cd968
--- /dev/null
+++ b/tests/multiparser_vue/lang-tsx.vue
@@ -0,0 +1,7 @@
+