Unable to use indexOf on a Typed Array due to TypeScript error
I have defined an Interface
, created an array of type Interface
and am now attempting to use .indexOf
, a method of an Array, and I am getting IDE error complaints that make no sense to me. Hoping someone here may be able to lend a thought to solve this pickle.
Interface
export interface IAddress {
name: string,
registrationId: number
}
Code
let friends: IAddress;
// assume friends has a few elements...
let index = friends.indexOf((friend: IAddress) => {
return !!(friend.name === 'some name');
});
TypeScript Errors:
Argument of type '(friend: IAddress) => boolean' is not assignable to parameter of type 'IAddress'.
Type '(friend: IAddress) => boolean' is missing the following properties from type 'IAddress': registrationId
If I were to remove the :IAddress
from the typed def next to friend:
I see this error instead.
Argument of type '(friend: any) => boolean' is not assignable to parameter of type 'IAddress'.
Type '(friend: any) => boolean' is missing the following properties from type 'IAddress': registrationId
javascript typescript typescript-typings
add a comment |
I have defined an Interface
, created an array of type Interface
and am now attempting to use .indexOf
, a method of an Array, and I am getting IDE error complaints that make no sense to me. Hoping someone here may be able to lend a thought to solve this pickle.
Interface
export interface IAddress {
name: string,
registrationId: number
}
Code
let friends: IAddress;
// assume friends has a few elements...
let index = friends.indexOf((friend: IAddress) => {
return !!(friend.name === 'some name');
});
TypeScript Errors:
Argument of type '(friend: IAddress) => boolean' is not assignable to parameter of type 'IAddress'.
Type '(friend: IAddress) => boolean' is missing the following properties from type 'IAddress': registrationId
If I were to remove the :IAddress
from the typed def next to friend:
I see this error instead.
Argument of type '(friend: any) => boolean' is not assignable to parameter of type 'IAddress'.
Type '(friend: any) => boolean' is missing the following properties from type 'IAddress': registrationId
javascript typescript typescript-typings
1
@Dale Burell -- Would like to know why I can't have a formal gesture of thanks in a question? It's just a bit of nice etiquette and attitude towards fellow developers.
– Pixxl
Jan 2 at 2:29
meta.stackexchange.com/questions/2950/…
– Dale Burrell
Jan 2 at 2:32
add a comment |
I have defined an Interface
, created an array of type Interface
and am now attempting to use .indexOf
, a method of an Array, and I am getting IDE error complaints that make no sense to me. Hoping someone here may be able to lend a thought to solve this pickle.
Interface
export interface IAddress {
name: string,
registrationId: number
}
Code
let friends: IAddress;
// assume friends has a few elements...
let index = friends.indexOf((friend: IAddress) => {
return !!(friend.name === 'some name');
});
TypeScript Errors:
Argument of type '(friend: IAddress) => boolean' is not assignable to parameter of type 'IAddress'.
Type '(friend: IAddress) => boolean' is missing the following properties from type 'IAddress': registrationId
If I were to remove the :IAddress
from the typed def next to friend:
I see this error instead.
Argument of type '(friend: any) => boolean' is not assignable to parameter of type 'IAddress'.
Type '(friend: any) => boolean' is missing the following properties from type 'IAddress': registrationId
javascript typescript typescript-typings
I have defined an Interface
, created an array of type Interface
and am now attempting to use .indexOf
, a method of an Array, and I am getting IDE error complaints that make no sense to me. Hoping someone here may be able to lend a thought to solve this pickle.
Interface
export interface IAddress {
name: string,
registrationId: number
}
Code
let friends: IAddress;
// assume friends has a few elements...
let index = friends.indexOf((friend: IAddress) => {
return !!(friend.name === 'some name');
});
TypeScript Errors:
Argument of type '(friend: IAddress) => boolean' is not assignable to parameter of type 'IAddress'.
Type '(friend: IAddress) => boolean' is missing the following properties from type 'IAddress': registrationId
If I were to remove the :IAddress
from the typed def next to friend:
I see this error instead.
Argument of type '(friend: any) => boolean' is not assignable to parameter of type 'IAddress'.
Type '(friend: any) => boolean' is missing the following properties from type 'IAddress': registrationId
javascript typescript typescript-typings
javascript typescript typescript-typings
edited Jan 2 at 2:28
Dale Burrell
3,35742655
3,35742655
asked Jan 2 at 2:24
PixxlPixxl
516312
516312
1
@Dale Burell -- Would like to know why I can't have a formal gesture of thanks in a question? It's just a bit of nice etiquette and attitude towards fellow developers.
– Pixxl
Jan 2 at 2:29
meta.stackexchange.com/questions/2950/…
– Dale Burrell
Jan 2 at 2:32
add a comment |
1
@Dale Burell -- Would like to know why I can't have a formal gesture of thanks in a question? It's just a bit of nice etiquette and attitude towards fellow developers.
– Pixxl
Jan 2 at 2:29
meta.stackexchange.com/questions/2950/…
– Dale Burrell
Jan 2 at 2:32
1
1
@Dale Burell -- Would like to know why I can't have a formal gesture of thanks in a question? It's just a bit of nice etiquette and attitude towards fellow developers.
– Pixxl
Jan 2 at 2:29
@Dale Burell -- Would like to know why I can't have a formal gesture of thanks in a question? It's just a bit of nice etiquette and attitude towards fellow developers.
– Pixxl
Jan 2 at 2:29
meta.stackexchange.com/questions/2950/…
– Dale Burrell
Jan 2 at 2:32
meta.stackexchange.com/questions/2950/…
– Dale Burrell
Jan 2 at 2:32
add a comment |
1 Answer
1
active
oldest
votes
Array.prototype.indexOf()
receives a parameter searchElement
and a second optional parameter fromIndex
.
- Here is the API reference.
Updated answer based on @Pixxl comment to use Array.prototype. findIndex() to get index
variable:
const friends: IAddress;
// assume friends has a few elements...
const index = friends.findIndex((friend: IAddress) => friend.name === 'some name');
2
Awesome, I didn't realizeindex
andindexOf
are meant for primitive values whereasfind
andfindIndex
are meant for more object-like values. I'd also like to suggest changing this answer to one that usesfindIndex
instead as it accomplishes the same task without needing to declare anindex
var outside the scope.
– Pixxl
Jan 2 at 2:40
1
Great comment @Pixxl, thank you.. Edidting the answer to useArray.prototoype.findIndex()
...
– Yosvel Quintero
Jan 2 at 2:43
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54000548%2funable-to-use-indexof-on-a-typed-array-due-to-typescript-error%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Array.prototype.indexOf()
receives a parameter searchElement
and a second optional parameter fromIndex
.
- Here is the API reference.
Updated answer based on @Pixxl comment to use Array.prototype. findIndex() to get index
variable:
const friends: IAddress;
// assume friends has a few elements...
const index = friends.findIndex((friend: IAddress) => friend.name === 'some name');
2
Awesome, I didn't realizeindex
andindexOf
are meant for primitive values whereasfind
andfindIndex
are meant for more object-like values. I'd also like to suggest changing this answer to one that usesfindIndex
instead as it accomplishes the same task without needing to declare anindex
var outside the scope.
– Pixxl
Jan 2 at 2:40
1
Great comment @Pixxl, thank you.. Edidting the answer to useArray.prototoype.findIndex()
...
– Yosvel Quintero
Jan 2 at 2:43
add a comment |
Array.prototype.indexOf()
receives a parameter searchElement
and a second optional parameter fromIndex
.
- Here is the API reference.
Updated answer based on @Pixxl comment to use Array.prototype. findIndex() to get index
variable:
const friends: IAddress;
// assume friends has a few elements...
const index = friends.findIndex((friend: IAddress) => friend.name === 'some name');
2
Awesome, I didn't realizeindex
andindexOf
are meant for primitive values whereasfind
andfindIndex
are meant for more object-like values. I'd also like to suggest changing this answer to one that usesfindIndex
instead as it accomplishes the same task without needing to declare anindex
var outside the scope.
– Pixxl
Jan 2 at 2:40
1
Great comment @Pixxl, thank you.. Edidting the answer to useArray.prototoype.findIndex()
...
– Yosvel Quintero
Jan 2 at 2:43
add a comment |
Array.prototype.indexOf()
receives a parameter searchElement
and a second optional parameter fromIndex
.
- Here is the API reference.
Updated answer based on @Pixxl comment to use Array.prototype. findIndex() to get index
variable:
const friends: IAddress;
// assume friends has a few elements...
const index = friends.findIndex((friend: IAddress) => friend.name === 'some name');
Array.prototype.indexOf()
receives a parameter searchElement
and a second optional parameter fromIndex
.
- Here is the API reference.
Updated answer based on @Pixxl comment to use Array.prototype. findIndex() to get index
variable:
const friends: IAddress;
// assume friends has a few elements...
const index = friends.findIndex((friend: IAddress) => friend.name === 'some name');
edited Jan 2 at 2:48
answered Jan 2 at 2:36
Yosvel QuinteroYosvel Quintero
11.7k42531
11.7k42531
2
Awesome, I didn't realizeindex
andindexOf
are meant for primitive values whereasfind
andfindIndex
are meant for more object-like values. I'd also like to suggest changing this answer to one that usesfindIndex
instead as it accomplishes the same task without needing to declare anindex
var outside the scope.
– Pixxl
Jan 2 at 2:40
1
Great comment @Pixxl, thank you.. Edidting the answer to useArray.prototoype.findIndex()
...
– Yosvel Quintero
Jan 2 at 2:43
add a comment |
2
Awesome, I didn't realizeindex
andindexOf
are meant for primitive values whereasfind
andfindIndex
are meant for more object-like values. I'd also like to suggest changing this answer to one that usesfindIndex
instead as it accomplishes the same task without needing to declare anindex
var outside the scope.
– Pixxl
Jan 2 at 2:40
1
Great comment @Pixxl, thank you.. Edidting the answer to useArray.prototoype.findIndex()
...
– Yosvel Quintero
Jan 2 at 2:43
2
2
Awesome, I didn't realize
index
and indexOf
are meant for primitive values whereas find
and findIndex
are meant for more object-like values. I'd also like to suggest changing this answer to one that uses findIndex
instead as it accomplishes the same task without needing to declare an index
var outside the scope.– Pixxl
Jan 2 at 2:40
Awesome, I didn't realize
index
and indexOf
are meant for primitive values whereas find
and findIndex
are meant for more object-like values. I'd also like to suggest changing this answer to one that uses findIndex
instead as it accomplishes the same task without needing to declare an index
var outside the scope.– Pixxl
Jan 2 at 2:40
1
1
Great comment @Pixxl, thank you.. Edidting the answer to use
Array.prototoype.findIndex()
...– Yosvel Quintero
Jan 2 at 2:43
Great comment @Pixxl, thank you.. Edidting the answer to use
Array.prototoype.findIndex()
...– Yosvel Quintero
Jan 2 at 2:43
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54000548%2funable-to-use-indexof-on-a-typed-array-due-to-typescript-error%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
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
Required, but never shown
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
Required, but never shown
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
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
@Dale Burell -- Would like to know why I can't have a formal gesture of thanks in a question? It's just a bit of nice etiquette and attitude towards fellow developers.
– Pixxl
Jan 2 at 2:29
meta.stackexchange.com/questions/2950/…
– Dale Burrell
Jan 2 at 2:32