Comments (2)
Ah, makes sense. I didn't think about the fact you can do dynamic types. I've been also going to the direction using OM to validate external inputs because doing both TS and OM types is time consuming. Thanks for the explanation!
from objectmodel.
That's actually a key difference between static and dynamic type checking. Static type checking is done at build time, and implies that all types are known in advance. Therefore your IDE can provide type-checking and autocomplete, because all types are static. That's called static code analysis.
While dynamic type-checking is done at runtime, and types can actually change dynamically. To give you a simple example, here is a Model that acts as a Number or a String depending on a coin flip:
const quanticModel = Model([Number, String]).assert(x => typeof x === (Math.random() < 0.5 ? "string" : "number"))
So it's impossible to provide Intellisense or other features related to static code analysis with dynamic type-checking solutions like ObjectModel. And it's impossible to provide type-checking based on values defined at runtime with solutions like TypeScript. Static and dynamic type-checking solutions are used for different purposes and objectives. In my current projects, I usually end up using both of them (TypeScript for core, internal logic, and ObjectModel for external interfaces controller)
from objectmodel.
Related Issues (20)
- Optional array model cause duplication in other instances of a model with default HOT 3
- Feature Request: Code Suggestion/IntelliSense on IDE (Jetbrain Webstorm) HOT 4
- Package objectmodel has been ignored because it contains invalid configuration HOT 2
- Problem Extending Typescript Class HOT 5
- Consider creating ADL serializer to generate ObjectModel? HOT 1
- How to nest SealedModels? HOT 8
- How to add custom methods to a Model? HOT 1
- Question: Is it possible to skip more detailed checks if initial type check fails? HOT 6
- [email protected]: The engine "node" is incompatible with this module HOT 3
- Default for Nested Models HOT 1
- Load Json to Object HOT 1
- Model composition and defaults HOT 11
- Typescript expected number of arguments when using defaultTo() HOT 4
- get objectmodel added to typia benchmarks HOT 4
- Nice Project HOT 1
- How can i return a « cleaned » object ? HOT 2
- Use in Typescript ? HOT 2
- pre/post process some datas ? HOT 2
- I can't catch the exceptions HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from objectmodel.