当前位置: 首页 > wzjs >正文

建立网站的步骤和费用网站没备案做淘宝客

建立网站的步骤和费用,网站没备案做淘宝客,html网页设计模板免费下载,wordpress 添加php文件在 TypeScript 中,keyof 和 in 是用于类型操作的两个关键工具,常用于处理对象类型的键和属性映射。以下是它们的详细解释和用法示例: 1. keyof 关键字 作用:将对象类型的键提取为联合类型。 语法:keyof T,…

在 TypeScript 中,keyofin 是用于类型操作的两个关键工具,常用于处理对象类型的键和属性映射。以下是它们的详细解释和用法示例:


1. keyof 关键字

作用:将对象类型的键提取为联合类型。
语法keyof T,其中 T 是对象类型。
结果:返回 T 的所有键的联合类型。

示例:
interface Person {name: string;age: number;
}type PersonKeys = keyof Person; // "name" | "age"
典型场景:
  • 泛型约束:限制函数参数必须为对象的有效键。
    function getValue<T, K extends keyof T>(obj: T, key: K): T[K] {return obj[key];
    }
    
  • 映射类型的基础:结合 in 使用,生成新类型(如 Partial<T>)。
特殊情况:
  • 空对象keyof {} 结果为 never
  • 原始类型keyof string 返回 String 包装对象的属性和方法的联合类型(如 "length" | "charAt" | ...)。

2. in 关键字

作用:在映射类型中遍历联合类型的每个成员。
语法[K in T],其中 T 是联合类型。
结果:为联合类型中的每个成员生成新的属性。

示例:
type Keys = "a" | "b";
type MyObject = {[K in Keys]: string;
};
// 等价于 { a: string; b: string; }
典型场景:
  • 工具类型的实现:如 Partial<T>Readonly<T>
    type Partial<T> = {[P in keyof T]?: T[P];
    };
    
  • 动态生成类型:根据联合类型创建新对象类型。

3. keyofin 的协作

两者常结合使用,keyof 提供键的联合类型,in 遍历这些键生成新属性。

示例:
interface Config {id: number;path: string;
}type ConfigGetters = {[K in keyof Config as `get${Capitalize<K>}`]: () => Config[K];
};
// 结果:
// {
//   getId: () => number;
//   getPath: () => string;
// }

4. 其他注意事项

  • 索引签名
    若对象有索引签名,keyof 会返回索引类型。
    interface StringMap {[key: string]: number;
    }
    type Keys = keyof StringMap; // string | number
    
  • 枚举类型
    使用 keyof typeof Enum 获取枚举的键。
    enum Direction { Up, Down }
    type DirectionKeys = keyof typeof Direction; // "Up" | "Down"
    
  • 类型保护
    in 在值空间用于检查属性存在(JavaScript 特性):
    if ("name" in obj) {// 类型收窄为包含 name 属性的类型
    }
    

总结

关键字作用场景示例结果
keyof提取对象键的联合类型keyof { a: 1, b: 2 }"a" | "b"
in遍历联合类型生成属性{ [K in "x"|"y"]: number }{ x: number; y: number }

掌握 keyofin 的使用,能显著提升 TypeScript 类型操作的灵活性和类型安全性。

http://www.dtcms.com/wzjs/586311.html

相关文章:

  • 如何做网赌网站沈阳网站订制
  • 西安营销型网站建站做网站收会员费违法吗
  • 社区网站设计wordpress站点迁移
  • 苏州市住建局官方网站做团购网站商品从哪里找
  • 不孕不育网站建设总结兰州做网站或小程序
  • 统计二级域名的网站流量有什么用专业网站开发平台
  • 安徽建工集团网站五华网站建设
  • 芙蓉区营销型网站建设定制写作网站水平哪个最好
  • 湖南网站建设方案优化公司建网站搭建服务器
  • 北京网站建设公为哈尔滨网页设计制作
  • 北京建站程序湘潭网站建设公司有哪些
  • 网站建设交印花税吗网站设计图能用ps做么
  • 想要一个免费的网站安卓app软件定制
  • 燕赵邯郸网站建设查看网站历史页面
  • 做网站可以用php吗新手如何搭建网站
  • 宝塔面板建设网站电脑网站怎么做的
  • 最专业的营销网站建设公司荣耀手机官方网站
  • 建设行业网站平台的瓶颈泰安网络营销公司
  • 邢台做网站优化价格wordpress komiles
  • 绵阳公司网站建设做问卷美观的网站
  • 天津哪里做网站手机网络
  • 贵州网站开发流程怎样做网站的关键词
  • 降龙网络专业做网站阿里云1核1g wordpress
  • 广州网站外贸推广wordpress静态页面制作
  • 淮北网站建设推广网页搭建工具
  • 基于百度地图的网站开发iis7 网站无法显示该页面
  • wap 网站 源码wordpress自带gallery
  • 阿里巴巴网站如何做固定背景网站源码建站视频教程
  • 网站建设论坛首页重庆城市建设档案馆官方网站
  • 温州市城乡建设厅网站全网推广网站