diff --git a/package.json b/package.json
index 8eb1cf9657..b480519f99 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,7 @@
 		"@types/is-root": "1.0.0",
 		"@types/is-svg": "3.0.0",
 		"@types/js-yaml": "3.12.0",
+		"@types/jsdom": "12.2.1",
 		"@types/katex": "0.5.0",
 		"@types/koa": "2.0.48",
 		"@types/koa-bodyparser": "5.0.2",
diff --git a/src/mfm/toHtml.ts b/src/mfm/toHtml.ts
index 85e8c8a7fe..e67ccc5035 100644
--- a/src/mfm/toHtml.ts
+++ b/src/mfm/toHtml.ts
@@ -1,5 +1,4 @@
-const jsdom = require('jsdom');
-const { JSDOM } = jsdom;
+import { JSDOM } from 'jsdom';
 import config from '../config';
 import { INote } from '../models/note';
 import { intersperse } from '../prelude/array';
@@ -158,9 +157,9 @@ export function toHtml(tokens: MfmForest, mentionedRemoteUsers: INote['mentioned
 
 		text(token) {
 			const el = doc.createElement('span');
-			const nodes = (token.node.props.text as string).split(/\r\n|\r|\n/).map(x => doc.createTextNode(x));
+			const nodes = (token.node.props.text as string).split(/\r\n|\r|\n/).map(x => doc.createTextNode(x) as Node);
 
-			for (const x of intersperse('br', nodes)) {
+			for (const x of intersperse<Node | 'br'>('br', nodes)) {
 				el.appendChild(x === 'br' ? doc.createElement('br') : x);
 			}