gpt4 book ai didi

typescript - isArray 检查和推断类型从不在 TypeScript 中

转载 作者:行者123 更新时间:2023-12-03 13:01:05 25 4
gpt4 key购买 nike

我试图在 TypeScript 中做一个简单的数组检查,但显然它所做的是推断如果它不是一个数组(它实际上接受 any 类型作为参数),那么它必须是 never 类型。我很好奇这在 TypeScript 中是如何工作的。特别是用 isArray 处理这种推理的正确方法是什么?

代码是:

if (Array.isArray(response)) {
// do something
} else {
if (response.hasOwnProperty('myProperty')) { // FAILS compilation, because response is of type 'never' here.
// do something else
}
}

同样的推断实际上发生在一个检查中: if (response instanceof Array)
是否可以在没有显式转换的情况下执行此操作?

最佳答案

这 ”!”符号可能是您要找的东西
[ https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-0.html#non-null-assertion-operator]

const response:number[] =[12];


if (Array.isArray(response)) {
// do something
} else {
if (response!.hasOwnProperty('myProperty')) { // will not fail thank to the non-null-assertion-operator
// do something else

}
}

关于typescript - isArray 检查和推断类型从不在 TypeScript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60727055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com