6

I am trying to build a nice windows phone application with an HTML front end. I want to use TYPESCRIPT to do my processing onto my html page. There is one javascript function which is crucial for my application to work - window.external.notify

This method isn't created till runtime I assume, so I build a javascript wrapper function to determine if it exists when it is called.

if (window.external.notify != undefined)
    window.external.notify(msg);

The issue is I need to get my Typescript files to see this function. I am using Visual Studio 2012 and I have seen the post - How to use an exported function within the local module The issue is when I just include my javascript file with the function I want to use I get the error TS2095.

error TS2095: Build: Could not find symbol

Any ideas or help or possible SDKs to circumvent this issue?

Community
  • 1
  • 1
MrSteamfist
  • 63
  • 1
  • 1
  • 5

2 Answers2

8

//notif.js

let notify = function(message) {
    alert(message);
}

//test.ts

declare function notify(message: string): any;
if(notify != undefined)
    notify("your message");

Make sure notif.js is loaded first.

JFAP
  • 3,617
  • 1
  • 24
  • 25
6

You need to tell typescript that this function exists on window.external in order to use it. So :

interface External{
    notify: Function;
}

if (window.external.notify != undefined)
    window.external.notify("your message");
basarat
  • 261,912
  • 58
  • 460
  • 511
  • I like that solution, I will check that out when I get home. – MrSteamfist Feb 04 '14 at 16:15
  • it does not work for me as i posted in here: http://stackoverflow.com/questions/43530096/calling-javascript-function-from-typescript-angular-2 can you please give a more complete example? Thanks – jay Apr 21 '17 at 21:41