5

I am getting following error from a simple module/class in typescript when I load page in IE11. The error does not happen in other browsers like Edge and Chrome.

JavaScript critical error at line 4, column 5 in clock.js SCRIPT1002: Syntax error

Here is TS code.

module DateTime {
    export class TestMe {
        private timeNow:Date;
        constructor() {
            alert("Hello");
        }
    }
}

And here is JS code generated from it.

var DateTime;
(function (DateTime) {
    class TestMe {
        constructor() {
            alert("Hello");
        }
    }
    DateTime.TestMe = TestMe;
})(DateTime || (DateTime = {}));

This is how this is getting invoked on page.

<script type="text/javascript">
            $(document)
                .ready(function() {
                        var testIt = new DateTime.TestMe();
                    }
                );
    </script>

From the debugger I can see that it is not liking "class" keyword in JS code. Page does not even get to create instance of "TestMe" because syntax error in clock.js does not let that file load. Is there anything that I need to include for it to work in IE11? I have tried to incluse es6 shim as well but same issue.

Thanks for any input on this issue.

1
  • please show your command line Commented Apr 19, 2016 at 16:14

2 Answers 2

19

IE 11 does not support the class keyword and language features, according to the compatibility table.

You can force the Typescript compiler to output code that will be compatible with an older version of JavaScript using the --target option or equivalent in your build. Otherwise, you'll need to run the TS output through another transpiler (such as Babel) to produce ES5 that will run under IE.

Sign up to request clarification or add additional context in comments.

1 Comment

Haha same time ;-)
8

Your compiler still seems to be compiling to es6 code which IE11 does not support

Try changing your compiler options to compile down to es5.

1 Comment

That was it. I had changed the compiler settings to ES6 at some point.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.