How can I get specific type in `or` operator definition?
up vote
0
down vote
favorite
For example I have type like this blow:
type ActionResource = {
type: "QUERY";
payload: IListPayload;
} | {
type: "GET";
payload: {
id: string;
};
} | {
type: "QUERY_NEXT";
} | {
type: "SAVE";
payload: {
id: string;
data: any;
};
} | {
type: "SEARCH_TEXT";
payload: {
...;
};
}
Now I would like to get specific type which has type
properties = 'SAVE'
So I do like this
type GetActionResourceType<K extends ActionResource['type']> = ActionResource
type SaveType = GetActionResourceType<'SAVE'>
I hope it will return type of SaveType look like:
{
type: "SAVE";
payload: {
id: string;
data: any;
}
How can I make GetActionResourceType
in my purpose
typescript functional-programming
add a comment |
up vote
0
down vote
favorite
For example I have type like this blow:
type ActionResource = {
type: "QUERY";
payload: IListPayload;
} | {
type: "GET";
payload: {
id: string;
};
} | {
type: "QUERY_NEXT";
} | {
type: "SAVE";
payload: {
id: string;
data: any;
};
} | {
type: "SEARCH_TEXT";
payload: {
...;
};
}
Now I would like to get specific type which has type
properties = 'SAVE'
So I do like this
type GetActionResourceType<K extends ActionResource['type']> = ActionResource
type SaveType = GetActionResourceType<'SAVE'>
I hope it will return type of SaveType look like:
{
type: "SAVE";
payload: {
id: string;
data: any;
}
How can I make GetActionResourceType
in my purpose
typescript functional-programming
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
For example I have type like this blow:
type ActionResource = {
type: "QUERY";
payload: IListPayload;
} | {
type: "GET";
payload: {
id: string;
};
} | {
type: "QUERY_NEXT";
} | {
type: "SAVE";
payload: {
id: string;
data: any;
};
} | {
type: "SEARCH_TEXT";
payload: {
...;
};
}
Now I would like to get specific type which has type
properties = 'SAVE'
So I do like this
type GetActionResourceType<K extends ActionResource['type']> = ActionResource
type SaveType = GetActionResourceType<'SAVE'>
I hope it will return type of SaveType look like:
{
type: "SAVE";
payload: {
id: string;
data: any;
}
How can I make GetActionResourceType
in my purpose
typescript functional-programming
For example I have type like this blow:
type ActionResource = {
type: "QUERY";
payload: IListPayload;
} | {
type: "GET";
payload: {
id: string;
};
} | {
type: "QUERY_NEXT";
} | {
type: "SAVE";
payload: {
id: string;
data: any;
};
} | {
type: "SEARCH_TEXT";
payload: {
...;
};
}
Now I would like to get specific type which has type
properties = 'SAVE'
So I do like this
type GetActionResourceType<K extends ActionResource['type']> = ActionResource
type SaveType = GetActionResourceType<'SAVE'>
I hope it will return type of SaveType look like:
{
type: "SAVE";
payload: {
id: string;
data: any;
}
How can I make GetActionResourceType
in my purpose
typescript functional-programming
typescript functional-programming
asked Nov 5 at 3:48
Le Tom
629
629
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
You can just use the Extract
(see in docs at Predefined conditional types)conditional type to extract a type that extends a specific type:
type GetActionResourceType<K extends ActionResource['type']> = Extract<ActionResource, { type: K }>
Thanks, you are right. Where you know Extract type?
– Le Tom
Nov 5 at 7:32
1
@LeTom added link to docs ..
– Titian Cernicova-Dragomir
Nov 5 at 7:34
@LeTom please mark as answered if it was what you were looking for
– Titian Cernicova-Dragomir
Nov 7 at 10:57
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
You can just use the Extract
(see in docs at Predefined conditional types)conditional type to extract a type that extends a specific type:
type GetActionResourceType<K extends ActionResource['type']> = Extract<ActionResource, { type: K }>
Thanks, you are right. Where you know Extract type?
– Le Tom
Nov 5 at 7:32
1
@LeTom added link to docs ..
– Titian Cernicova-Dragomir
Nov 5 at 7:34
@LeTom please mark as answered if it was what you were looking for
– Titian Cernicova-Dragomir
Nov 7 at 10:57
add a comment |
up vote
1
down vote
accepted
You can just use the Extract
(see in docs at Predefined conditional types)conditional type to extract a type that extends a specific type:
type GetActionResourceType<K extends ActionResource['type']> = Extract<ActionResource, { type: K }>
Thanks, you are right. Where you know Extract type?
– Le Tom
Nov 5 at 7:32
1
@LeTom added link to docs ..
– Titian Cernicova-Dragomir
Nov 5 at 7:34
@LeTom please mark as answered if it was what you were looking for
– Titian Cernicova-Dragomir
Nov 7 at 10:57
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
You can just use the Extract
(see in docs at Predefined conditional types)conditional type to extract a type that extends a specific type:
type GetActionResourceType<K extends ActionResource['type']> = Extract<ActionResource, { type: K }>
You can just use the Extract
(see in docs at Predefined conditional types)conditional type to extract a type that extends a specific type:
type GetActionResourceType<K extends ActionResource['type']> = Extract<ActionResource, { type: K }>
edited Nov 5 at 7:34
answered Nov 5 at 5:07
Titian Cernicova-Dragomir
50.4k33148
50.4k33148
Thanks, you are right. Where you know Extract type?
– Le Tom
Nov 5 at 7:32
1
@LeTom added link to docs ..
– Titian Cernicova-Dragomir
Nov 5 at 7:34
@LeTom please mark as answered if it was what you were looking for
– Titian Cernicova-Dragomir
Nov 7 at 10:57
add a comment |
Thanks, you are right. Where you know Extract type?
– Le Tom
Nov 5 at 7:32
1
@LeTom added link to docs ..
– Titian Cernicova-Dragomir
Nov 5 at 7:34
@LeTom please mark as answered if it was what you were looking for
– Titian Cernicova-Dragomir
Nov 7 at 10:57
Thanks, you are right. Where you know Extract type?
– Le Tom
Nov 5 at 7:32
Thanks, you are right. Where you know Extract type?
– Le Tom
Nov 5 at 7:32
1
1
@LeTom added link to docs ..
– Titian Cernicova-Dragomir
Nov 5 at 7:34
@LeTom added link to docs ..
– Titian Cernicova-Dragomir
Nov 5 at 7:34
@LeTom please mark as answered if it was what you were looking for
– Titian Cernicova-Dragomir
Nov 7 at 10:57
@LeTom please mark as answered if it was what you were looking for
– Titian Cernicova-Dragomir
Nov 7 at 10:57
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53148055%2fhow-can-i-get-specific-type-in-or-operator-definition%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password