当前位置: 代码网 > it编程>前端脚本>Vue.js > typescript中array.filter的用法和ts中is的作用

typescript中array.filter的用法和ts中is的作用

2024年08月01日 Vue.js 我要评论
此时就可以了,filter函数筛选类型时 要返回一个类型谓词;要不然ts是不知道你缩减了类型的;关键字,它被称为类型谓词,用来判断一个变量属于某个接口或类型。当我要帅选出所有A类型数据时,用filter判断是否有a属性;可以看到filter是接受泛型的:泛型S受T约束;此时你会发现 ts的推导类型并没有改变,还是。可以看到一个"类型xxx必须为类型谓词"不应该是boolean吗?这个时候就会疑惑 啥是类型谓词;TypeScript 中的。
interface a {
	a:number;
}
interface b {
	b:number;
}
type c = a|b;
const arr:c=[{a:1},{b:2},{b:1}];

当我要帅选出所有a类型数据时,用filter判断是否有a属性;

const filterarr=arr.filter(i=> i.hasownproperty('a'));

此时你会发现 ts的推导类型并没有改变,还是c [ ];
在这里插入图片描述
这时候点进去filter的ts定义:
在这里插入图片描述
可以看到filter是接受泛型的:泛型s受t约束;

此时我们传入类型a:

const filterarr=arr.filter<a>(i=> i.hasownproperty('a'));

可以看到一个"类型xxx必须为类型谓词"
在这里插入图片描述

这个时候就会疑惑 啥是类型谓词;

仔细看就是发现这里和我们想像的不一样:value is s是什么东西?不应该是boolean吗?
在这里插入图片描述
typescript 中的 is 关键字,它被称为类型谓词,用来判断一个变量属于某个接口或类型。

const isa = (i: c): i is a => {
  return i.hasownproperty('a');
};

在这里插入图片描述
此时就可以了,filter函数筛选类型时 要返回一个类型谓词;要不然ts是不知道你缩减了类型的;

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com