diff --git a/packages/badge/src/main.vue b/packages/badge/src/main.vue
index 5b2eeb739..fb3051d38 100644
--- a/packages/badge/src/main.vue
+++ b/packages/badge/src/main.vue
@@ -7,7 +7,7 @@
         v-text="content"
         class="el-badge__content"
         :class="[
-          'el-badge__content--' + type,
+          type ? 'el-badge__content--' + type : null,
           {
             'is-fixed': $slots.default,
             'is-dot': isDot
diff --git a/test/unit/specs/badge.spec.js b/test/unit/specs/badge.spec.js
index cfcf122bc..cc7a1993d 100644
--- a/test/unit/specs/badge.spec.js
+++ b/test/unit/specs/badge.spec.js
@@ -32,6 +32,17 @@ describe('Badge', () => {
     expect(vm.$el.querySelector('.el-badge__content.is-dot')).to.exist;
   });
 
+  it('is dot with type', () => {
+    vm = createVue(`
+      <el-badge is-dot type="success">
+        <button>click</button>
+      </el-badge>
+    `);
+
+    expect(vm.$el.querySelector('.el-badge__content.is-dot')).to.exist;
+    expect(vm.$el.querySelector('.el-badge__content.el-badge__content--success.is-dot')).to.exist;
+  });
+
   it('max', () => {
     vm = createTest(Badge, { max: 100, value: 200 });
     expect(vm.content).to.equal('100+');