使劲卷--TypeScript入门, 数据类型和推断, ts-node直接运行ts文件

430 阅读3分钟

这是我参与更文挑战的第7天,活动详情查看: 更文挑战

一、初始TypeScript

1.TypeScript定义

TypeScript是JavaScript类型的超集, 简称TS, 包含JavaScript语法支持ES6标准, 所以在学习TypeScirpt之前一定要先学会ES6, TypeScirpt是微软开发的自由和开源的编程于洋, TypeScript支持类型定义、类、接口、枚举、泛型等特性,所以在其设计目标是开发大型应用,他可以编译成纯JavaScript,编译出来的JavaScript开一运行在任何浏览器上。

2012年10月,微软发布了首个公开版本的TypeScript,2013年6月19日,在经历了一个预览版之后微软正式发布了正式版TypeScript

TypeScript的作者是安德斯-海尔斯伯格, C#的首席架构师

2.TypeScript特点

  • 编译JavaScript TypeScript可以编译出纯净、简洁的JavaScirpt代码, 并且运行在任何浏览器上, Node.js环境中和任何支持ECMScirpt3(或更高版本)的JavaScirpt引擎中。
  • 类型系统 类型系统(静态类型化)可以再开发人员编写脚本时检测错误,查找并修复错误是当今团队的迫切需求。有了这项功能,开发人员可以编写出可读性高,维护性强的代码。
  • 开发大型项目 有时为了改进项目,需要对代码库进行小的增量更改。这些小小的变化可能会产生严重的、意想不到的后果,因此有必要撤销这些变化。使用TypeScript工具来进行重构变得容易、快捷。
  • 更好的协作 在开发大型项目时,会有许多开发人员,此时会出现各种各样的问题和bug,类型系统检测是第一种在编码期间检测错误的功能,而不是在编译项目是检测错误,这位开发团队创建了一个更高效的编码和调试过程。

二、快速上手

1. TypeScript安装

npm i -g typescript  // 安装
tsc -v  // 检测ts安装版本

image.png

2. ts的数据类型与推断

TypeScript在声明变量后是函数时需要添加约束页脚类型注解, 支持的基本数据类型和引用类型有: string, number, boolean, null. undefined, symbol, array, object, Function, any, 空值可以使用void来表示, void可以辨识变量, 也可以标识函数返回值。

  • 类型约束
let hello:string = 'hello world'
hello = 2 // 这个代码在编写的时候vscode就报错了, hello是字符类型, 不能赋值数值类型
let message:any = 'anything'
message = true

console.log(hello);

image.png

  • 类型推断
let age = 30 // 这里会推断年龄是数值类型, 再次赋值字符类型会报错
age = 'zhangsan'

image.png

  • 编译ts-> js
tsc  ./1.dataType.ts  // 执行后就会出现一个同名的js

image.png

  • 运行node xx.js

image.png

  • 直接运行ts
ts-node xx.js

!!! 踩坑, 如果报错

$ ts-node 1.dataType.ts
Error: Cannot find module '@types/node/package.json'

运行下面代码

npm install -d tslib @types/node

运行, 解决

image.png