Hopefully this helps someone else but here's how we setup ESRI javascript API within our MVC 5 that is also written in typescript and where we are hosting the ESRI files <script> //see also: https://developers.arcgis.com/javascript/3/jshelp/inside_web_optimizer.html#use define = undefined; var dojoConfig = { packages: [ /////////////////////////any non GIS modules used in GIS.ts need to be defined here///////////////////// { name: "GIS", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/GIS" }, { name: "collections", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/collections" }, //////////////////////////////////////// /////////////////////////////need this imports for GIS///////////////////////////////////// { name: "dojo", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/dojo" }, { name: "dojox", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/dojox" }, { name: "dijit", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/dijit" }, { name: "esri", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/esri" }, { name: "dgrid", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/dgrid" }, { name: "dgrid1", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/dgrid1" }, { name: "moment", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/moment" }, { name: "dstore", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/dstore" }, { name: "put-selector", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/put-selector" }, { name: "xstyle", location: location.pathname.replace(/\/[^/]+$/, "") + "/Scripts/app/xstyle" }, ///////////////////////////////////////////////////////////////////// ], async: true }; </script> <script src="@(Url.Content("~/Scripts/app/dojo/dojo.js"))" data-dojo-config="async: true"></script> <script> $(function() { var gisModule; require(["GIS/GIS"], function(GIS) { gisModule = new GIS("@(JsonConvert.SerializeObject(gisViewData))"); }); @(refreshFilter) = function(filterSequence) { console.log("refresh function javascript"); gisModule.LoadFilterAssets(filterSequence); } }); </script> <link rel="stylesheet" type="text/css" href="@Url.Content("~/Scripts/app")/dijit/themes/claro/claro.css" /> <link rel="stylesheet" type="text/css" href="@Url.Content("~/Scripts/app")/esri/css/esri.css" /> we downloaded the argis javascript API and dumped the contents into Scripts/app we stored our typescript typings in Scripts/typings; You have to go and get the typings for dojo, digit, dstore, etc. The typings for arcgis are here
... View more