diff --git a/lib/logger/cmd-serializer.js b/lib/logger/cmd-serializer.ts
similarity index 60%
rename from lib/logger/cmd-serializer.js
rename to lib/logger/cmd-serializer.ts
index 02950a6a9652925f17910839c68ba1239ac5b0e3..55822f79d964357609c33e52185e37e1a7fad617 100644
--- a/lib/logger/cmd-serializer.js
+++ b/lib/logger/cmd-serializer.ts
@@ -1,6 +1,4 @@
-export default cmdSerializer;
-
 // istanbul ignore next
-function cmdSerializer(cmd) {
+export default function(cmd: string): string {
   return cmd.replace(/https:\/\/[^@]*@/g, 'https://**redacted**@');
 }
diff --git a/lib/logger/config-serializer.js b/lib/logger/config-serializer.ts
similarity index 81%
rename from lib/logger/config-serializer.js
rename to lib/logger/config-serializer.ts
index ef5de7c3d459fdcf5874e35827f12b7bfc6b79d5..6167662bbac27927acf38f0a7f23100b1b149659 100644
--- a/lib/logger/config-serializer.js
+++ b/lib/logger/config-serializer.ts
@@ -1,8 +1,9 @@
-const traverse = require('traverse');
+import traverse from 'traverse';
+import { RenovateConfig } from '../config/common';
 
-module.exports = configSerializer;
-
-function configSerializer(config) {
+export default function configSerializer(
+  config: RenovateConfig
+): RenovateConfig {
   const redactedFields = [
     'authorization',
     'token',
@@ -23,10 +24,10 @@ function configSerializer(config) {
     'yarnLockParsed',
   ];
   const arrayFields = ['packageFiles', 'upgrades'];
+
   return traverse(config).map(
-    /** @this {{key:string, update: (val:any) => void}} */
     // eslint-disable-next-line array-callback-return
-    function scrub(val) {
+    function scrub(val: string) {
       if (val && redactedFields.includes(this.key)) {
         this.update('***********');
       }
diff --git a/lib/logger/err-serializer.js b/lib/logger/err-serializer.ts
similarity index 93%
rename from lib/logger/err-serializer.js
rename to lib/logger/err-serializer.ts
index 011c2a4fc07866f4ac478cede7e19a6fb63b6996..66aeef13d61a0c3170ffceb2d21cab3027565a11 100644
--- a/lib/logger/err-serializer.js
+++ b/lib/logger/err-serializer.ts
@@ -1,6 +1,7 @@
 import is from '@sindresorhus/is';
 
-export default function errSerializer(err) {
+// TODO: remove any type
+export default function errSerializer(err: any): any {
   const response = {
     ...err,
   };
diff --git a/package.json b/package.json
index 4630779d433b3dca90a9c75d3ca43bfd942317fe..9f39907e2457c58d4cd010eed8fbf060cb6dc5e6 100644
--- a/package.json
+++ b/package.json
@@ -192,6 +192,7 @@
     "@types/semver": "6.2.0",
     "@types/shelljs": "0.8.6",
     "@types/tmp": "0.1.0",
+    "@types/traverse": "^0.6.32",
     "@types/validator": "10.11.3",
     "@types/xmldoc": "1.1.4",
     "@typescript-eslint/eslint-plugin": "2.9.0",
diff --git a/test/logger/__snapshots__/config-serializer.spec.js.snap b/test/logger/__snapshots__/config-serializer.spec.ts.snap
similarity index 100%
rename from test/logger/__snapshots__/config-serializer.spec.js.snap
rename to test/logger/__snapshots__/config-serializer.spec.ts.snap
diff --git a/test/logger/__snapshots__/err-serializer.spec.js.snap b/test/logger/__snapshots__/err-serializer.spec.ts.snap
similarity index 100%
rename from test/logger/__snapshots__/err-serializer.spec.js.snap
rename to test/logger/__snapshots__/err-serializer.spec.ts.snap
diff --git a/test/logger/config-serializer.spec.js b/test/logger/config-serializer.spec.ts
similarity index 88%
rename from test/logger/config-serializer.spec.js
rename to test/logger/config-serializer.spec.ts
index 8265ab1f871e58ce1926b5ca05d1c145c1ac3df5..a4943e2416754a9801d435ccfa5e0dd2aa782711 100644
--- a/test/logger/config-serializer.spec.js
+++ b/test/logger/config-serializer.spec.ts
@@ -1,4 +1,4 @@
-const configSerializer = require('../../lib/logger/config-serializer');
+import configSerializer from '../../lib/logger/config-serializer';
 
 describe('logger/config-serializer', () => {
   it('redacts sensitive fields', () => {
diff --git a/test/logger/err-serializer.spec.js b/test/logger/err-serializer.spec.ts
similarity index 100%
rename from test/logger/err-serializer.spec.js
rename to test/logger/err-serializer.spec.ts
diff --git a/yarn.lock b/yarn.lock
index aeda3ad1fd875ade1da25094176953dfebbdb066..61db0c3133a71ec502205f2ea8fec31695719887 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1354,6 +1354,11 @@
   resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.5.tgz#9da44ed75571999b65c37b60c9b2b88db54c585d"
   integrity sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==
 
+"@types/traverse@^0.6.32":
+  version "0.6.32"
+  resolved "https://registry.yarnpkg.com/@types/traverse/-/traverse-0.6.32.tgz#f9fdfa40cd4898deaa975a14511aec731de8235e"
+  integrity sha512-RBz2uRZVCXuMg93WD//aTS5B120QlT4lR/gL+935QtGsKHLS6sCtZBaKfWjIfk7ZXv/r8mtGbwjVIee6/3XTow==
+
 "@types/validator@10.11.3":
   version "10.11.3"
   resolved "https://registry.yarnpkg.com/@types/validator/-/validator-10.11.3.tgz#945799bef24a953c5bc02011ca8ad79331a3ef25"