typescript初见
This commit is contained in:
parent
a8c44a4709
commit
8f96698853
80
source/_posts/前端杂烩/TypeScript初见.md
Normal file
80
source/_posts/前端杂烩/TypeScript初见.md
Normal file
@ -0,0 +1,80 @@
|
||||
---
|
||||
title: TypeScript初见
|
||||
date: 2019-6-23 15:22:13
|
||||
tags:
|
||||
- TypeScript
|
||||
categories:
|
||||
- 前端杂烩
|
||||
---
|
||||
|
||||
`TypeScript` ( 以下简称TS ) 由微软开发, 是一个JavaScript的超集, 遵循ES6规范
|
||||
也就是TS本身支持所有的JS语法, 已有的JS程序不需要任何改动就可以在TS环境下运行
|
||||
同时进行了扩展
|
||||
添加了基于类的面向对象编程特性, 以及数据类型
|
||||
<!-- more -->
|
||||
|
||||
> 这种数据类型的定义, 与Java这种编译型语言终究不同
|
||||
我的体会是它只存在编译期的类型检查, 而运行期还是与JS基本相同
|
||||
这样的好处也很明显, 能够减少在开发阶段犯错误的几率 ( 毕竟IDE可以完成类型检查的错误提示 )
|
||||
避免一些类型问题都需要调试来排查
|
||||
|
||||
### 开发环境
|
||||
首先这种JavaScript的超集, 如果需要在浏览器运行
|
||||
必然是需要compiler的, 因为需要转成可执行的JavaScript代码
|
||||
|
||||
如果是在nodejs里面运行, 就可以不需要了, 因为它可以想babel那样, 封装一个自己的运行器出来
|
||||
比如babel的 `babel-node`, 就如同是nodejs的 `node`, 前者提供了提供一个支持ES6的REPL环境
|
||||
|
||||
```shell
|
||||
npm install -g typescript
|
||||
```
|
||||
> 当然如果是只在项目里面使用, 也可以不执行全局安装
|
||||
|
||||

|
||||
可以看到安装后添加了两个命令行工具, 分别是`tsc`和`tsserver`
|
||||
tsc就是 TypeScript Compiler
|
||||
|
||||
#### 使用编译器
|
||||
现在可以尝试写个typescript文件
|
||||
比如
|
||||
```typescript
|
||||
// hello.ts
|
||||
export class Hello {
|
||||
hello(msg) {
|
||||
console.log(msg)
|
||||
}
|
||||
}
|
||||
```
|
||||
然后执行`tsc hello.ts`
|
||||
就会生成hello.js文件, 内容如下
|
||||
```javascript
|
||||
"use strict";
|
||||
exports.__esModule = true;
|
||||
var Hello = /** @class */ (function () {
|
||||
function Hello() {
|
||||
}
|
||||
Hello.prototype.hello = function (msg) {
|
||||
console.log(msg);
|
||||
};
|
||||
return Hello;
|
||||
}());
|
||||
exports.Hello = Hello;
|
||||
```
|
||||
就是一个语法的转换过程
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### 写在最后
|
||||
最近拿 [Nestjs](https://docs.nestjs.cn/) 给自己的博客写了个管理端的后台
|
||||
当然前后端分离是必须的, Nestjs写后台也只写接口
|
||||
这个框架需要用TypeScript编写代码, 于是就顺带学了学
|
||||
|
||||
据说习惯了TypeScript就再也不想写JavaScript了, 我倒是没怎么觉得
|
||||
只是Nestjs的很多设计都和Spring有几分神似, 只能说Spring大法好, 上手倒是容易很多
|
||||
BIN
source/images/前端杂烩/typescript安装.png
Normal file
BIN
source/images/前端杂烩/typescript安装.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
Loading…
x
Reference in New Issue
Block a user