当前位置:首页 >> 核电技术聚变聚能设备 >> 【TS篇一】TypeScript介绍、使用场景、环境搭建、类和接口,考拉宝

【TS篇一】TypeScript介绍、使用场景、环境搭建、类和接口,考拉宝

cpugpu芯片开发光刻机 核电技术聚变聚能设备 4
文件名:【TS篇一】TypeScript介绍、使用场景、环境搭建、类和接口,考拉宝 【TS篇一】TypeScript介绍、使用场景、环境搭建、类和接口

文章目录 一、TypeScript 介绍1. TypeScript 是什么1.2 静态类型和动态类型1.3 Why TypeScript1.4 TypeScript 使用场景1.5 TypeScript 不仅仅用于开发 Angular 应用1.6 前置知识 二、如何学习 TypeScript2.1 相关链接 三、起步3.1 搭建 TypeScript 开发环境3.2 编辑器的选择3.3 Hello World 四、类和接口4.1 接口(Interface)4.2 类(Class)

一、TypeScript 介绍

1. TypeScript 是什么

TypeScript 是 JavaScript 的强类型版本。然后在编译期去掉类型和特有语法,生成纯粹的 JavaScript 代码。由于最终在浏览器中运行的仍然是 JavaScript,所以 TypeScript 并不依赖于浏览器的支持,也并不会带来兼容性问题。

TypeScript 是 JavaScript 的超集,这意味着他支持所有的 JavaScript 语法。并在此之上对 JavaScript 添加了一些扩展,如 class / interface / module 等。这样会大大提升代码的可阅读性。

和 JavaScript 若类型不同,TypeScript 这种强类型语言最大的优势在于静态类型检查,可以在代码开发阶段就预知一些低级错误的发生。

一种类似于 JavaScript 的语言,在 JavaScript 的基础之上增加了类型,同时增强了 JavaScript 部分语法功能遵循 EcmaScript 6 标准规范由微软开发Angular 2 框架采用 TypeScript 编写背后有微软和谷歌两大公司的支持TypeScript 可以编译成 JavaScript 从而在支持 JavaScript 的环境中运行TypeScript 和 JavaScript 的关系就好比 less 和 css 的关系 1.2 静态类型和动态类型

静态(static):无需运行,根据程序代码就能确定结果。

动态(dynamic):只有运行才能确定结果。

类型:对某个数据所具有的性质进行的描述。如它的结构是怎样的,能进行什么操作。

静态类型:数据拥有类型,且仅有数据拥有类型。

动态类型:数据拥有类型,存放数据的变量、表达式也拥有类型,且类型在编译时是固定的。

下图是静态语言和动态语言的比较:

从表中可见,动态语言和静态语言各有优劣,而TypeScript提供了静态语言强类型支持,同时兼容动态语言弱类型的语法,使用者根据项目需求自由选择。

这种动静结合的特性,目前还没在其他语言见过。

1.3 Why TypeScript

从 Angular 2 之后,官方推荐使用 TypeScript 作为开发 Angular 应用的首选语言

遵循 EcmaScript 6

强大的 IDE 支持

类型检查严谨的语法提示

代码重构

可读性良好

1.4 TypeScript 使用场景

大型团队开发

Angular 官推语言

其它…

这里引用知乎上一位开发者对使用推广 TypeScript 的看法:

typescript绝对是好东西,不过推广是有难度的:1、TS是微软制造,最好的开发工具是VS,想想有些人就激动了(什么vi流,sublime流,macbook流,虽然也能写ts,但你无法跟他们说用vs写有多么好);2、即使你告诉他们TS有多好,但是几十人的团队里总有一半以上的人不想学新的东西(当然我没有权利说不学新东西的人应该全部滚动,因为互联网打工的是大爷,想跳槽随便找工作);3、JSer很多没有学习OOP开发经验(特别是从设计/页面重构转过来的);4、很多人接触TS前根本没学过JS,经常有人问“使用TS如何写元素拖拽”这样的问题(那是DOM API好伐,不过你跟初学者很难解释明白); 1.5 TypeScript 不仅仅用于开发 Angular 应用

https://www.typescriptlang.org/samples/index.html

ReactAngularNode.jsVue.jsWeChat…

凡是可以写 JavaScript 的都可以使用 TypeScript。

1.6 前置知识 EcmaScript 6TypeScript 概念及关系具有一定的 JavaScript 开发经验有 Java、C#、C++、C 等静态类型语言使用经验更佳 二、如何学习 TypeScript 官方文档为准阅读别人的代码由于 TypeScript 是兼容 EcmaScript 6 的,所以在开发的时候不需要完全学会 TypeScript 再使用一个建议是有空就学,会了就用虽然兼容 EcmaScript 6,但建议既然使用了 TypeScript 就让你的 TypeScript 代码更加 TypeScript,这样才能发挥出 TypeScript 的威力。 2.1 相关链接

维基百科 - TypeScript

如何评价 TypeScript?

flow.js/typescript 这类定义参数类型的意义何在?

TypeScript Github

TypeScript 官网

TypeScript 中文网

三、起步 3.1 搭建 TypeScript 开发环境

什么是 compiler?

less 编译器:less

EcmaScript 6 编译器:babel

TypeScript 编译器:typescript

一句话:把 TypeScript 转换为 JavaScript ,浏览器就具有运行了

在线测试编译环境 compiler

https://www.typescriptlang.org/play/index.html

本地开发编译环境

npm i -g typescript# 查看版本号tsc --version# 查看使用帮助tsc --help 3.2 编辑器的选择 Visual Studio CodeSublimeWebstorm… 3.3 Hello World

新建 greeter.ts 并写入以下内容:

function greeter(person) {return "Hello, " + person;}let user = "Jane User";document.body.innerHTML = greeter(user);

安装编译器:

npm i -g typescript

编译:

tsc greeter.ts

修改 greeter.ts 文件中的代码,为 greeter 函数的参数 person 加上类型声明 :string:

function greeter(person: string) {return "Hello, " + person;}let user = "Jane User";document.body.innerHTML = greeter(user);

重新编译执行。

让我们继续修改:

function greeter(person: string) {return "Hello, " + person;}let user = [0, 1, 2];document.body.innerHTML = greeter(user);

重新编译,你将看到如下错误:

error TS2345: Argument of type 'number[]' is not assignable to parameter of type 'string'. 四、类和接口 4.1 接口(Interface) interface Person {firstName: string;lastName: string;}function greeter(person: Person) {return "Hello, " + person.firstName + " " + person.lastName;}let user = { firstName: "Jane", lastName: "User" };document.body.innerHTML = greeter(user); 4.2 类(Class) class Student {fullName: string;constructor(public firstName: string, public middleInitial: string, public lastName: string) {this.fullName = firstName + " " + middleInitial + " " + lastName;}}interface Person {firstName: string;lastName: string;}function greeter(person : Person) {return "Hello, " + person.firstName + " " + person.lastName;}let user = new Student("Jane", "M.", "User");document.body.innerHTML = greeter(user);
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2026年1月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接