C++从业者的TS入门篇

作为一名C++经验的TypeScript初学者,有一些概念需要了解原理,而不是死记硬背(说的好像学什么可以死记硬背学好似的)。

首先需要清楚:

1. TypeScript编译后生成JavaScript,一切问题都可以转化成对生产JS后的思考;

2. TypeScript不仅兼容JavaScript(TS是JS的超级),而且有新的特性。

今天打算说说自己作为初学者,对interface的理解过程。

C++中 interface 其实和 class 、struct 相同,都可以:

1. 有成员方法

2. 有成员变量

3. 可以被继承

4. 可以继承自多个

看起来只是通过不同关键字(其实还有对C的兼容,历史包袱),做非强制约定,一般(注意是一般):

interface

class

struct

设计意图

接口约定

业务实现

纯数据组织,倾向POD

默认访问

public

private

public

成员方法

纯虚接口声明

都可以

成员变量

都可以

继承关系

被继承,自己无法被实例化

都可以

较少

TypeScript中继承有两种(类似java):

1. implement 自 interface,可以有多个;

2. extends 自 class,必须单继承(注意是直接关系一对一,但是可以串联实现多重继承)。

现在有个需求,需要给部分模块提供序列化/反序列化功能。

简单:设计统一接口,需要支持的就实现该接口,根据是否实现该接口判断是否支持序列化/反序列化。

要是C++,很顺利应该就完成了。可是,如下(左侧TS,右侧JS):

Error in code: 'IStreamingArchive' only refers to a type, but is being used as a value here.

看了JS,就能发现,哪有什么IStreamingArchive,interface只是在TS中存在,编译后就没了。也就不能 instanceof 了。

PS:细心看的话,上面有个没错的错误 : let arrA : Array<BaseModule> = new Array<A>(); (留给大家思考)

那怎么办,办法也由 JS 特性(成员都是property)而来:

另外,TS中interface常见有成员变量,也是用来约定实现接口的类一定有这些成员变量。

上面思考题,有一个相关概念对于理解TS个人觉得比较关键:鸭子类型(Duck-Typing)。简单理解就是:不是只有继承自Duck才 is a Duck,如果能有Duck相同的属性(成员变量)、行为(成员方法),那也满足 is a Duck。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows程序设计入门是指学习如何使用Windows操作系统中的API和工具开发应用程序的过程。以下是一些入门的步骤: 1. 学习编程语言:Windows程序可以使用多种编程语言编写,例如C++、C#、Visual Basic等。因此,学习一种编程语言是必须的。推荐优秀的编程书籍,例如《C++ Primer》、《C#入门经典》等。 2. 熟悉Windows API:Windows API是Windows操作系统提供的一组函数调用,用于访问系统资源和执行操作。学习Windows API的使用是Windows程序设计的核心。Microsoft的官方文档提供了详细的API参考和示例代码,可以帮助开发者快速上手。 3. 使用集成开发环境(IDE):IDE是一种软件工具,可以帮助开发者编写、调试和测试程序。Windows程序设计中常用的IDE有Visual Studio、Code::Blocks、Dev-C++等。 4. 编写简单的应用程序:通过编写简单的应用程序,例如控制台程序、窗口程序等,来熟悉Windows API的使用和程序开发流程。 5. 学习GUI编程:GUI(图形用户界面)是Windows程序的重要组成部分。学习如何使用Windows API或GUI库(例如MFC、WinForms、WPF等)来设计和开发GUI是Windows程序设计的重要步骤。 6. 学习调试和测试:调试和测试是程序开发不可避免的环节。学习如何使用IDE提供的调试工具和测试框架,以及如何编写测试用例和进行单元测试等,可以提高程序的质量和稳定性。 总之,Windows程序设计入门需要学习编程语言、Windows API、GUI编程以及调试和测试等方面的知识。通过不断练习和实践,可以逐渐掌握Windows程序设计的技巧和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值