<div dir="auto"><span style="font-family:sans-serif;font-size:12.8px">Yes, I think that inherited checks it's also good idea.</span><div dir="auto" style="font-family:sans-serif;font-size:12.8px">And regading `has` I agree. Maybe better to call `requireInstance`.</div></div><div class="gmail_extra"><br><div class="gmail_quote">18 февр. 2018 г. 22:03 пользователь "Aleksander Efremov" <<a href="mailto:mr.efrem@gmail.com">mr.efrem@gmail.com</a>> написал:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Yes, I think that inherited checks it's also good idea.<div dir="auto">And regading `has` I agree. Maybe better to call `requireInstance`.</div></div><div class="gmail_extra"><br><div class="gmail_quote">18 февр. 2018 г. 21:43 пользователь "Mike Samuel" <<a href="mailto:mikesamuel@gmail.com" target="_blank">mikesamuel@gmail.com</a>> написал:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>Must hasInstanceStrict's parameter remain untyped for a guard to complete or is there a top type with an unguarded hasInstanceStrict that these checks bottom out on?</div><div dir="auto"><br></div><div dir="auto">"has" to my ear sounds like it should return a boolean.  Maybe "require."</div><div dir="auto"><br></div><div dir="auto"><br><div class="gmail_extra" dir="auto"><br><div class="gmail_quote">On Feb 18, 2018 11:30 AM, "Aleksander Efremov" <<a href="mailto:mr.efrem@gmail.com" target="_blank">mr.efrem@gmail.com</a>> wrote:<br type="attribution"><blockquote class="m_-541843357128411809m_1883310803831382064quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It’s attempt to provide intermediate layer for implementation of runtime type checking.<br>
<br>
```<br>
class PrimitiveNumber {<br>
        static [Symbol.hasInstanceStrict](x) {<br>
                if (typeof x !== ’number’) {<br>
                        throw new TypeError(‘Invalid type’);<br>
                }<br>
        }<br>
}<br>
<br>
function sum(a: PrimitiveNumber, b: PrimitiveNumber) {<br>
        return a + b;<br>
}<br>
<br>
const c: PrimitiveNumber = sum(1, 2);<br>
```<br>
<br>
I.e. when appears assignment of variable (const) if then follows `: <class>` then JS runtime must to call method `static [Symbol.hasInstanceStrict](x)` and transfer to there assignable value.<br>
<br>
______________________________<wbr>_________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listi<wbr>nfo/es-discuss</a><br>
</blockquote></div><br></div></div></div>
</blockquote></div></div>
</blockquote></div></div>