diff --git a/.github/tsc.json b/.github/tsc.json
index 5b0b6647..7d8df569 100644
--- a/.github/tsc.json
+++ b/.github/tsc.json
@@ -4,14 +4,15 @@
             "owner": "tsc",
             "pattern": [
                 {
-                    "regexp": "^(?:\\s+\\d+\\>)?([^\\s].*)\\((\\d+|\\d+,\\d+|\\d+,\\d+,\\d+,\\d+)\\)\\s*:\\s+(error|warning|info)\\s+(\\w{1,2}\\d+)\\s*:\\s*(.*)$",
+                    "regexp": "^([^\\s].*)[\\(:](\\d+)[,:](\\d+)(?:\\):\\s+|\\s+-\\s+)(error|warning|info)\\s+TS(\\d+)\\s*:\\s*(.*)$",
                     "file": 1,
-                    "location": 2,
-                    "severity": 3,
-                    "code": 4,
-                    "message": 5
+                    "line": 2,
+                    "column": 3,
+                    "severity": 4,
+                    "code": 5,
+                    "message": 6
                 }
             ]
         }
     ]
-}
\ No newline at end of file
+}
diff --git a/__tests__/installer.test.ts b/__tests__/installer.test.ts
index 22ac3d68..4fe75779 100644
--- a/__tests__/installer.test.ts
+++ b/__tests__/installer.test.ts
@@ -8,15 +8,10 @@ import path from 'path';
 import * as main from '../src/main';
 import * as im from '../src/installer';
 import * as auth from '../src/authutil';
-import {context} from '@actions/github';
 
 let nodeTestManifest = require('./data/versions-manifest.json');
 let nodeTestDist = require('./data/node-dist-index.json');
 
-// let matchers = require('../matchers.json');
-// let matcherPattern = matchers.problemMatcher[0].pattern[0];
-// let matcherRegExp = new RegExp(matcherPattern.regexp);
-
 describe('setup-node', () => {
   let inputs = {} as any;
   let os = {} as any;
diff --git a/__tests__/problem-matcher.test.ts b/__tests__/problem-matcher.test.ts
new file mode 100644
index 00000000..4bcfdd1b
--- /dev/null
+++ b/__tests__/problem-matcher.test.ts
@@ -0,0 +1,43 @@
+describe('problem matcher tests', () => {
+  it('tsc: matches TypeScript "pretty" error message', () => {
+    const [
+      {
+        pattern: [{regexp}]
+      }
+    ] = require('../.github/tsc.json').problemMatcher;
+    const exampleErrorMessage =
+      "lib/index.js:23:42 - error TS2345: Argument of type 'A' is not assignable to parameter of type 'B'.";
+
+    const match = exampleErrorMessage.match(new RegExp(regexp));
+    expect(match).not.toBeNull();
+    expect(match![1]).toEqual('lib/index.js');
+    expect(match![2]).toEqual('23');
+    expect(match![3]).toEqual('42');
+    expect(match![4]).toEqual('error');
+    expect(match![5]).toEqual('2345');
+    expect(match![6]).toEqual(
+      "Argument of type 'A' is not assignable to parameter of type 'B'."
+    );
+  });
+
+  it('tsc: matches TypeScript error message from log file', () => {
+    const [
+      {
+        pattern: [{regexp}]
+      }
+    ] = require('../.github/tsc.json').problemMatcher;
+    const exampleErrorMessage =
+      "lib/index.js(23,42): error TS2345: Argument of type 'A' is not assignable to parameter of type 'B'.";
+
+    const match = exampleErrorMessage.match(new RegExp(regexp));
+    expect(match).not.toBeNull();
+    expect(match![1]).toEqual('lib/index.js');
+    expect(match![2]).toEqual('23');
+    expect(match![3]).toEqual('42');
+    expect(match![4]).toEqual('error');
+    expect(match![5]).toEqual('2345');
+    expect(match![6]).toEqual(
+      "Argument of type 'A' is not assignable to parameter of type 'B'."
+    );
+  });
+});