浅谈TypeScript基础以及项目用法

前言

TypeScript 对于前端人员甚至后台人员都不算是特别陌生的东西了(身边很多java朋友看ts都觉得还不错),今天来聊聊这玩意,基础用法,以及项目中大家都是怎么用的。 顺便一说,ts这东西实在是太大了,因为他的类型可以很灵活的去组合,不过放心,本文不会涉及太多概念性的东西(也说不完),因为其实一个大项目,往往就是这些基本类型用得最多,像type和interface这些东西,不过也分职位,如果你是项目组长或者是你们公司前端负责人要求的特别严格或者你是写工具的,封装一些公用组件的,用这些特别的东西机会会比较多

在ts里,类型最好是规定的越死越好,因为这东西本身就是来规范自己规范团队的,如果要是全用any的话,不如直接用js,如果项目只有自己,那就更没必要上这玩意了,给自己找麻烦

基础类型

ts里大家多少应该都听过,一些number类型string类型包括函数的参数类型什么nerver、void本文就不再多赘述了,因为这东西实在太简单了。。。这里就简单的列一下

基本类型: number/string/boolean/Array/object

any null、undefined void never

工具

因为做实验的时候每次都需要tsc编译一下,然后node 文件 太麻烦了,我这里简单写了个gulp(没用webpack因为gulp比较简单方便并且快),大家愿意用可以直接用

评论区有人指出来只编译的话可以直接tsc -w 其实是一样的,不过我主要是为了自己方便watch的时候清屏,以及一切其他的文件操作,所以gulp方便一点,这里就留个架子,有兴趣可以在评论区或者gulp官网找更多方便的命令

用法:

  1. cnpm i -g gulp-cli  - 安装gulp本身
  2. cnpm i  - 安装本地依赖库
  3. gulp watch - 运行gulp的watch任务

package.json

{
  "name": "test",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "gulp": "^4.0.2",
    "gulp-clean": "^0.4.0",
    "gulp-run": "^1.7.1",
    "gulp-typescript": "^6.0.0-alpha.1",
    "gulp-watch": "^5.0.1",
    "typescript": "^3.7.4"
  }
}

复制代码

gulpfile.js

const gulp = require('gulp'),
  watch = require('gulp-watch'),
  ts = require('gulp-typescript'),
  run = require('gulp-run'),
  clean = require('gulp-clean');

gulp.task('watch', () => {
  return watch('./1.ts', () => {
    gulp
      .src('./1.ts')
      .pipe(
        ts({
          target: 'ES6',
          outFile: '1.js',
          experimentalDecorators: true,
        }),
      )
      .on('error', err => {
        // console.error(err);
      })
      .pipe(gulp.dest('build'))
      .pipe(run('node build/1.js'));
  });
});

复制代码

项目结构如下

 

image.png

 

 

运行结果

这个build不用自己手动创建,直接运行gulp,会自动创建并且运行的

image.png

 

 

数组

数组的花样其实还相对来说挺多的,这里先介绍基础用法,下文会讲到和其他的一些东西配合

let arr = Array<number>; // 规定只能是装数字的数组
// 可以简写成 let arr = number[];

Type - Interface

经常有人问我 ts type 和 interface 有啥区别,首先肯定一点,这俩功能肯定是有相同点,也肯定有区别,要不然作者也就不有病搞两个出来了,这里我们先说分别的用法,再说区别

咱们暂时理解成这两个都是自定义类型的

首先ts约定类型是可以约定json内部的,这个大家都知道就像这样 这样是报错的</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值