I'm trying to create a widget in 4.11 and I'm getting the titular error. The traceback doesn't extend past the library code so I have no idea what part of my code actually causes the error, although my last breakpoint is at the widget's render function. I've attached my entire project (run "npm install; npm start" to build it and spin up a local web server) and I've pasted the main widget code below.
<SPAN class="comment token">/// <amd-dependency path="esri/core/tsSupport/declareExtendsHelper" name="__extends" /></SPAN>
<SPAN class="comment token">/// <amd-dependency path="esri/core/tsSupport/decorateHelper" name="__decorate" /></SPAN>
<SPAN class="keyword token">import</SPAN> <SPAN class="punctuation token">{</SPAN> declared<SPAN class="punctuation token">,</SPAN> property<SPAN class="punctuation token">,</SPAN> subclass<SPAN class="punctuation token">,</SPAN> aliasOf <SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">from</SPAN> <SPAN class="string token">"esri/core/accessorSupport/decorators"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> <SPAN class="punctuation token">{</SPAN> renderable<SPAN class="punctuation token">,</SPAN> tsx <SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">from</SPAN> <SPAN class="string token">"esri/widgets/support/widget"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> TimeSliderVM<SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN> TimeExtent <SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">from</SPAN> <SPAN class="string token">"./TimeSliderVM"</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">import</SPAN> Widget <SPAN class="operator token">=</SPAN> <SPAN class="token function">require</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"esri/widgets/Widget"</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
@<SPAN class="token function">subclass</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"ledcor.gis.widgets.TimeSlider"</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">export</SPAN> <SPAN class="keyword token">default</SPAN> <SPAN class="keyword token">class</SPAN> <SPAN class="token class-name">TimeSlider</SPAN> <SPAN class="keyword token">extends</SPAN> <SPAN class="token class-name">declared</SPAN><SPAN class="punctuation token">(</SPAN>Widget<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
@<SPAN class="token function">property</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
viewModel<SPAN class="punctuation token">:</SPAN> TimeSliderVM
@<SPAN class="token function">property</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
@<SPAN class="token function">renderable</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
@<SPAN class="token function">aliasOf</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"viewModel.currentTime"</SPAN><SPAN class="punctuation token">)</SPAN>
currentTime<SPAN class="punctuation token">:</SPAN> Date
@<SPAN class="token function">property</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
@<SPAN class="token function">renderable</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
@<SPAN class="token function">aliasOf</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"viewModel.extent"</SPAN><SPAN class="punctuation token">)</SPAN>
extent<SPAN class="punctuation token">:</SPAN> TimeExtent
<SPAN class="token function">constructor</SPAN><SPAN class="punctuation token">(</SPAN>start<SPAN class="punctuation token">:</SPAN> Date<SPAN class="punctuation token">,</SPAN> end<SPAN class="punctuation token">:</SPAN> Date<SPAN class="punctuation token">,</SPAN> current<SPAN class="operator token">?</SPAN><SPAN class="punctuation token">:</SPAN> Date<SPAN class="punctuation token">,</SPAN> params<SPAN class="operator token">?</SPAN><SPAN class="punctuation token">:</SPAN> Partial<SPAN class="operator token"><</SPAN>__esri<SPAN class="punctuation token">.</SPAN>WidgetProperties<SPAN class="operator token">></SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">super</SPAN><SPAN class="punctuation token">(</SPAN>params<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>viewModel <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">TimeSliderVM</SPAN><SPAN class="punctuation token">(</SPAN>start<SPAN class="punctuation token">,</SPAN> end<SPAN class="punctuation token">,</SPAN> current<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">async</SPAN> <SPAN class="token function">_onClick</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="punctuation token">:</SPAN> Event<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>viewModel<SPAN class="punctuation token">.</SPAN>currentTime <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Date</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="token function">render</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">return</SPAN> <SPAN class="punctuation token">(</SPAN>
<SPAN class="operator token"><</SPAN>div <SPAN class="keyword token">class</SPAN><SPAN class="operator token">=</SPAN><SPAN class="string token">"esri-widget"</SPAN><SPAN class="operator token">></SPAN>
<SPAN class="operator token"><</SPAN>h3<SPAN class="operator token">></SPAN>Time Slider<SPAN class="operator token"><</SPAN><SPAN class="operator token">/</SPAN>h3<SPAN class="operator token">></SPAN>
<SPAN class="operator token"><</SPAN><SPAN class="operator token">/</SPAN>div<SPAN class="operator token">></SPAN>
<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>Any help is appreciated, thank you!