对typescript重新思考

引言

最近有在看一些关于typescript的东西,以前的理解就仅仅只是认为它比JavaScript多了一个类型检测,后来发现了一篇非常好的文章,让我重新对typescript进行了思考,但是由于本人没有写过typescript,所以准备从实践入手,深入理解关于面向接口编程的原理,故这是一篇长期更新的博客哈哈哈哈。

具体的概念示例代码等,官方文档里面都写得十分详细。我就只是阐述一下自己的理解。

接口

typescript里面接口的作用就是对这些类型命名和为自己的代码或者第三方代码定义契约,我个人对于接口的理解有很多:

  1. 可以定义新的类型(普通对象/函数)
  2. 定义类类型,ts用它来明确强制一个类去符合某种契约(这是功能与Java类似)用发 implement <接口名称>

注意:当一个类实现一个接口时,只对其实例部分进行类型检查。

接口可以互相继承、定义混合类型、接口还可以继承类

泛型

主要是用来做类型约束,比如我不规定参数和返回值的类型,但是我必须保证参数和返回值类型相同。

  • 泛型类型(变量、函数、接口)最全面的示例:
interface GenericIdentityFn<T> {// 接口
    (arg: T): T;
}

function identity<T>(arg: T): T {// 函数
    return arg;
}

let myIdentity: GenericIdentityFn<number> = identity;
  • 泛型类
class GenericNumber<T>{
    zeroValue:T;
    add:(x:T,y:T)=>T
}
  • 泛型约束举例

    1. 类类型:在typescript使用其创建工厂函数,需要引用构造函数的类类型

      function create<T>(c:{new ():T;}):T{
      	return new c();
      }
      
    2. 类型参数

      function getProperty<T,K extends keyof T>(obj:T,key:K):T[K]{
          return obj[key];
      }
      
      let x = { a: 1, b: 2, c: 3, d: 4 };
      getProperty(x, 'b'); // okay
      

高级类型(简单写,方便查看)

  • 交叉类型 & (类型断言防止编译器报错)
  • 联合类型 |
  • 类型保护与区分类型(typeof、instanceof、params is type)
  • null类型:(–strictNullChecks、a!语法从a的类型里面去除null和undefined)
  • 类型别名(包括基本类型:type Name=string):不能被extends implements
  • 可辨识联合,完整性检查(–strictNullChecks+number或者never)
  • 多态的this类型
  • 索引类型(keyof T[K])
  • 映射类型(旧类型换成新类型,)

三斜线指令

/// <reference path="..." />

主要是一种引入外部库地方案,还有很多其他的方案,可以自行查阅文档。

typescript思想

  • 更加明确的模块抽象过程,把考虑抽象和拓展看作写一个模块前的必备环节

ts“超”在哪里

typescript是JavaScript的超集,超在哪里?

  • typescript为JavaScript引入了一套类型系统
  • typescript支持一些非ECMAScript正是标准的语法,比如装饰器

学习资料

结语

感觉又长胖了,难受香菇,明天也要加油鸭~

展开阅读全文

Python数据分析与挖掘

01-08
92讲视频课+16大项目实战+源码+¥800元课程礼包+讲师社群1V1答疑+社群闭门分享会=99元   为什么学习数据分析?       人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。       从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。    本课程共包含五大模块: 一、先导篇: 通过分析数据分析师的一天,让学员了解全面了解成为一个数据分析师的所有必修功法,对数据分析师不在迷惑。   二、基础篇: 围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。   三、数据采集篇: 通过网络爬虫实战解决数据分析的必经之路:数据从何来的问题,讲解常见的爬虫套路并利用三大实战帮助学员扎实数据采集能力,避免没有数据可分析的尴尬。   四、分析工具篇: 讲解数据分析避不开的科学计算库Numpy、数据分析工具Pandas及常见可视化工具Matplotlib。   五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值