初学者这样玩 TypeScript,迟早进大厂系列(第七期)

本文面向初学者,详细介绍了TypeScript中的infer关键字、unknown类型、迭代器和生成器、映射类型、模块系统以及命名空间。通过实例解析,帮助读者掌握这些核心概念,降低学习难度。
摘要由CSDN通过智能技术生成

极客江南: 一个对开发技术特别执着的程序员,对移动开发有着独到的见解和深入的研究,有着多年的iOS、Android、HTML5开发经验,对NativeApp、HybridApp、WebApp开发有着独到的见解和深入的研究, 除此之外还精通 JavaScript、AngularJS、 NodeJS 、Ajax、jQuery、Cordova、React Native等多种Web前端技术及Java、PHP等服务端技术。

初学者玩转 TypeScript系列,总计 10 期,本文为第 7 期,点赞、收藏、评论、关注、三连支持!

一期知识点击这里

二期知识点击这里

三期知识点击这里

四期知识点击这里

五期知识点击这里

六期知识点击这里

对于初学者来说,学习编程最害怕的就是,

那么,Typescript 是不是很难?

首先,我可以肯定地告诉你,你的焦虑是多余的。新手对学习新技术有很强的排斥心理,主要是因为基础不够扎实,然后自信心不够强。

1.infer关键字
  • infer关键字
  • 条件类型提供了一个infer关键字, 可以让我们在条件类型中定义新的类型
// 需求: 定义一个类型, 如果传入的是数组, 就返回数组的元素类型,
//                     如果传入的是普通类型, 则直接返回这个类型

// type MyType<T> = T extends any[] ? T[number] : T;
// type res = MyType<string[]>;
// type res = MyType<number>;

// type MyType<T> = T extends Array<infer U> ? U : T;
// type res = MyType<string[]>;
// type res = MyType<number>;

2. unknown
/*
 1.什么是unknown类型?
 unknown类型是TS3.0中新增的一个顶级类型, 被称作安全的any
* */
* 
// 1.任何类型都可以赋值给unknown类型
// let value:unknown;
// value = 123;
// value = "abc";
// value = false;

// 2.如果没有类型断言或基于控制流的类型细化, 那么不能将unknown类型赋值给其它类型

// let value1:unknown = 123;
// let value2:number;
// value2 = value1;
// value2 = value1 as number;
// if(typeof value1 === 'number'){
   
//     value2 = value1;
// }

// 3.如果没有类型断言或基于控制流的类型细化, 那么不能在unknown类型上进行任何操作

// let value1:unknown = 123;
// value1++;
// (value1 as number)++;
// if(typeof value1 === 'number'){
   
//      value1++;
// }

// 4.只能对unknown类型进行 相等或不等操作, 不能进行其它操作(因为其他操作没有意义)

// let value1:unknown = 123;
// let value2:unknown = 123;
// console.log(value1 === value2);
// console.log(value1 !== value2);
// console.log(value1 >= value2); // 虽然没有报错, 但是不推荐, 如果想报错提示, 可以打开严格模式

// 5.unknown与其它任何类型组成的交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值