They could be. I didn't initially include it, but that does logically follow from it.
----- Isiah Meadows [email protected] On Thu, Apr 27, 2017 at 7:05 AM, doodad-js Admin <[email protected]> wrote: > I like it. Are interfaces extendable? I mean something like... > > interface CustomerSummary { > // ... > } > > interface CustomerDetails extends CustomerSummary { > // ... > } > > Claude Petit > [email protected] > > -----Original Message----- > From: [email protected] [mailto:[email protected]] On Behalf Of Isiah > Meadows > Sent: Thursday, April 27, 2017 1:23 AM > To: doodad-js Admin <[email protected]> > Subject: Re: Interfaces > > I'm thinking, maybe if someone could combine this with a decent mixin > proposal, this would work well. > > Here's my idea for interface checking: > Note: this != mixin. I probably could've worded this better... > > ```js > // These are all checked via duck typing. > interface IteratorResult { > // Properties > done; > value; > } > > interface Iterator { > // required method > next(); > // optional methods > throw?(); > return?(); > } > > interface Iterable { > // Dynamic method name, checked via `typeof obj[Symbol.iterator] === > "function"` > [Symbol.iterator](); > } > > // Interfaces may be anonymous and are themselves // new primitives const > dynamic = interface { > foo(); > }; > > assert(typeof dynamic === "interface"); > > // Check if something implements an interface // Done via duck type > checking via `[[Has]]` for // properties and `[[Get]]` for methods if > (value implements dynamic) { > // ... > } > > // Assert a class matches one or more interfaces class Foo implements > Iterable, Iterator { > // ... > } > ``` > > It's intentionally a subset of TypeScript's interfaces, mod new runtime > behavior, and it specifically works structurally to work with existing duck > typing mechanisms. (Browsers can already optimize this fairly well.) > ----- > > Isiah Meadows > [email protected] > > > On Wed, Apr 26, 2017 at 11:42 PM, doodad-js Admin <[email protected]> > wrote: > > Hi, I’m starting a new thread from the bottom message. > > > > > > > > I did a great work to provide OOP in Javascript, but nobody seems to > > care, and some even given me bad intentions. But I continue to persist... > > > > > > > > My framework already provides a solution on the user space. All that > > remains is to port it to a more lower level, in combination to > > existing proposals like public class fields, private fields, class and > property decorators, ... > > To just name a few. > > > > > > > > (I’m French, so I’m sorry if my English is not accurate) > > > > > > > > From: Jordan Harband [mailto:[email protected]] > > Sent: Thursday, February 02, 2017 2:25 PM > > To: T.J. Crowder <[email protected]> > > Cc: [email protected] > > Subject: Re: Short Comparing proposal > > > > > > > > It seems like a far more useful proposal (although much larger in > > scope) would be some concept of interface comparison, and then you > > could see if `object` matches "an interface that has an `a` and `b` > > property", but also if `object` is "arraylike", or "iterable", or a > "thenable", etc. > > > > > > _______________________________________________ > > es-discuss mailing list > > [email protected] > > https://mail.mozilla.org/listinfo/es-discuss > > > >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

