转职成为TypeScript程序员的参考手册

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转职成为TypeScript程序员的参考手册相关的知识,希望对你有一定的参考价值。

泛型

对c#程序员来说,TypeScript的泛型很熟悉,基本上是一致的设计。

技术分享

类型约束

C#使用where关键字标记类型约束,TypeScript在尖括号内使用extends关键字,效果相同。

下面的例子中IExample约束了泛型必须是IMyInterface和他的派生类。

技术分享

如果像下图这样用的话,就能约束为同时继承ClassOne和ClassTwo的类型。很费解吧,请特别注意

这是因为本质上TypeScript的类型系统并不那么严格,下面的章节会详细解释TypeScript的类型系统

技术分享

你也可以使用泛型作为泛型的类型约束,如下

技术分享

技术分享

结构类型

C#的类型系统是强制标记的,对象的类型必须显示声明。即使两个类型拥有完全相同的结构,他们也不是相同的类型。

TypeScript的类型系统是结构上的,建筑结构,层次型的。结构相同的类型即可认为是同一类型。

下面是C#中的一个例子

技术分享

ClassA ClassB是完全不同的类型,他们之间是不同的,必须显示继承接口才能让他们兼容。

而在TypeScript中不是这样,我们用如下的例子来证明。ClassA ClassB ExampleC 拥有签名一致的函数,所以他们就可以兼容。

技术分享

TypeScript的结构类型系统意味着你在c#中的观念不再成立,class name不是关键。这需要我们写代码的时候时刻注意。

这玩意会让代码千变万化,如果你熟悉C#或者JAVA,这可能会让你困惑。

?

看下面的例子,不需要class关键字,也会实实在在的产生类型。

技术分享

在这个例子中,会产生一个匿名的类型

技术分享

这个匿名的类型可以让开发工具提供自动完成功能,编译器也会检查。如果你尝试将objA的name赋值一个数值,编译器会检查到告诉你错误。编译器还会为数组推断类型。

访问修饰器

TypeScript的访问修饰器可能会给你一种弱小的感觉,的确如此。他仅仅是一个编译时功能。

模块中的一切均为私有,除非加上export关键字。没有export关键字的类型仅能在模块内实用。

类的内部,一切均为公开,除非加上private 关键字。public只是为了看起来意图明确。

TypeScript的访问修饰器就是这样而已,没有c#的 internal 和 protected这种修饰器,想要c#类似的功能就放弃吧。

以上是关于转职成为TypeScript程序员的参考手册的主要内容,如果未能解决你的问题,请参考以下文章

转职成为TypeScript程序员的参考手册

软件测试一个冬天,如何从手工测试转职成为测试开发?

《C程序设计语言》笔记 (十六) 参考手册8

TypeScript中文手册

Typescript 入门手册之函数类型在 TypeScript 中的应用

Typescript 入门手册之函数类型在 TypeScript 中的应用