Comments (4)
This was fixed too
from luau.
also x
shows up as never
, I think this should become a setting, if unknown and never are a reference to any
it's sooo confusing, someone explain
from luau.
unknown
and never
are different types, not references to any
. unknown
and any
are very closely related though. unknown
is a type that can be ascribed to any value, and any
is a type that ignores any type errors it might run into. So, in practice, they look very similar, but the difference is that if you want to take something from the type unknown
to a more specific type, you'll have to explicitly cast it, but any
will allow you to implicitly cast to a more specific type. never
, on the other hand, is the return type of functions that do not return (e.g. the built-in error
function). We'll provide more documentation for all of this when we actually ship the new type solver.
from luau.
unknown
andnever
are different types, not references toany
.unknown
andany
are very closely related though.unknown
is a type that can be ascribed to any value, andany
is a type that ignores any type errors it might run into. So, in practice, they look very similar, but the difference is that if you want to take something from the typeunknown
to a more specific type, you'll have to explicitly cast it, butany
will allow you to implicitly cast to a more specific type.never
, on the other hand, is the return type of functions that do not return (e.g. the built-inerror
function). We'll provide more documentation for all of this when we actually ship the new type solver.
I saw that the new type solver typeof(table.clone())
outputs {+ +}
now, instead of {- -}
Not sure if that's intended. It is gonna break anyone that used table.clone() for {- -}
(barely anyone does that probably, other than me)
A cool thing though is that typeof({})
is now an unsealed table.
100% there's a valid usecase for doing this. e.g. creating a class where you pass a table
you access that table through class.Data
however, something magical makes it sealed and this typeof
method is what I use as a solution
I can even see adding support for customized properties in Roact... maybe, somehow in some way. Roact is not used anymore though.
from luau.
Related Issues (20)
- `buffer` library doesn't accept `buffer`s in new type solver's non-strict mode HOT 3
- `any` as generic `T` incompatible with `{T}` in new type solver's strict mode
- Variable's type sometimes unions with `nil` due to `if` statement with new type solver's strict mode HOT 1
- For loop variable types not inferred from generic iterator with new type solver
- `and` `or` expression causes type pack error with new type solver's strict mode
- `table.freeze` returns type `{+ +}` with new solver's strict mode HOT 1
- failed assert in script file crashes repl HOT 1
- Stack overflow in parser HOT 3
- `buffer` library `TypeError` when buffer is function parameter with new solver's non-strict mode
- Cyclic union with upvalue not reducing `TypeError` with new solver's strict mode
- TypeError: Type pack '...any' could not be converted into 'a...' in new solver's strict mode
- Comment in lgc.h wrongly describes the GC invariant? HOT 1
- Test doesn't do what it says it does HOT 2
- TypeError when indexing table with union/intersection type of identical types
- Variables pack not inferred correctly for `__iter` metamethod
- Add type checking to `Luau.Web.js`
- Incorrect type widening with multiple arguments to generic `T` with new solver HOT 4
- String keys are not checked against table indexer
- Cannot cast into union with literal with new solver's strict mode HOT 1
- Type refinement rememberance for statically labeled variables assigned to Engine API.
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 luau.