R
roblox-ts•3d ago
Unknown User

How do i specify keyof

71 Replies
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
type IncludeOfType<Object, Type> = {
[K in keyof Object as Object[K] extends Type ? K : never]: Object[K];
};

type T1 = IncludeOfType<{
Name: string,
Width: number,
}, number>
type IncludeOfType<Object, Type> = {
[K in keyof Object as Object[K] extends Type ? K : never]: Object[K];
};

type T1 = IncludeOfType<{
Name: string,
Width: number,
}, number>
can also be done using Pick<>
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
T extends number ? "T is a number" : "T is not a number";
T extends number ? "T is a number" : "T is not a number";
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
wherever you want T can be whatever
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
it's a conditional type, it checks if T can be assigned to number, if yes it reuturns the first type, otherwise the second here the returned types are literal strings, but they can be whatever to fit what you want
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
you asked how can i determine if property have number value or other
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
huh
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
yah..
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
you want an array of them?
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
No description
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
you forgot keyof before InstanceOfType InstanceOfType<...> is an Object type
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
not getting that error on my end
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
no ... 😅
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
types dont exit during run time
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
can you show where the error is
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
yah you wont get any exact values cause it's a generic
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
i did and i dont get any errors (other than that related to SeperatedProperty)
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
No description
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
exactly what WritableInstanceProperty returns, but just property with number values
alihsaas
alihsaas•3d ago
No description
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
youll have to do
No description
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
hmm actually lemme try something
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
yah that's exactly the issu e yaaah you have to type cast it idk how else you can fix this
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•3d ago
and dont ever use as never in scenarios like this, i only use it in places where things should be impossible or there should be an error
Unknown User
Unknown UserOP•3d ago
Message Not Public
Sign In & Join Server To View
wAD
wAD•3d ago
so unnecessarily complicated ExtractKeys<WritableInstanceProperties<T>, number>
alihsaas
alihsaas•3d ago
Missed it in the utility types mb But you also don't need the keyof
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•2d ago
cause it's a type that does the same thing as the one i gave you, but it is built in instead of what i gave you
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View
wAD
wAD•2d ago
because Name: string switch to Name: Name
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View
wAD
wAD•2d ago
oh
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View
wAD
wAD•2d ago
can u give a playground repro
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View
wAD
wAD•2d ago
send as file @Tverksaac 2.0 faster
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View
wAD
wAD•2d ago
i meant send link as file
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View
wAD
wAD•2d ago
@Tverksaac 2.0 yeah i think typescript can't ensure this index in a generic context never cast is the only way to go i tried or actualy
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View
wAD
wAD•2d ago
hold on link roblox-ts bot in question @Tverksaac 2.0 cast like this way better
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View
alihsaas
alihsaas•2d ago
its same as ConnectedInstance[Name] but created a type alias so not repeated
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View
wAD
wAD•2d ago
need to pr index type assertion to typescript so asserts like this: assert(typeIs(a[b]), "number") affect the whole scope not just this one value
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View
wAD
wAD•2d ago
yeah
Unknown User
Unknown UserOP•2d ago
Message Not Public
Sign In & Join Server To View

Did you find this page helpful?