diff --git a/index.ts b/index.ts
index 29f5370..a0a51b8 100644
--- a/index.ts
+++ b/index.ts
@@ -69,12 +69,22 @@ module tss {
getScriptVersion: (fileName) => this.files[fileName] && this.files[fileName].version.toString(),
getScriptSnapshot: (fileName) => {
var file = this.files[fileName];
- return {
- getText: (start, end) => file.text.substring(start, end),
- getLength: () => file.text.length,
- getLineStartPositions: () => [],
- getChangeRange: (oldSnapshot) => undefined
- };
+ if (file) {
+ return {
+ getText: (start, end) => file.text.substring(start, end),
+ getLength: () => file.text.length,
+ getLineStartPositions: (): number[]=> [],
+ getChangeRange: (oldSnapshot) => undefined
+ };
+ }
+ else { // This is some reference import
+ return {
+ getText: (start, end) => '',
+ getLength: () => 0,
+ getLineStartPositions: (): number[]=> [],
+ getChangeRange: (oldSnapshot) => undefined
+ };
+ }
},
getCurrentDirectory: () => process.cwd(),
getScriptIsOpen: () => true,
diff --git a/test/test.js b/test/test.js
index 6d1ac4f..ec89677 100644
--- a/test/test.js
+++ b/test/test.js
@@ -86,6 +86,14 @@ describe('typescript-update', function() {
var expected = "var x = 'some string';" + eol;
assert.equal(tss.compile(src), expected);
});
+
+ it('reference imports are ignored', function() {
+ var src = "/// " + eol
+ + "var x: number = 'some string';";
+ var expected = "/// " + eol
+ + "var x = 'some string';" + eol;
+ assert.equal(tss.compile(src), expected);
+ });
it('syntactic errors are not ignored', function() {
var src = "var x = 123 123;";