为vue3学点typescript(1), 体验typescript

栏目: JavaScript · 发布时间: 5年前

内容简介:看了vue3是用typescript开发的, 我揣测在vue的带领下typescript会成为主流呢, 要不先学点.

看了 vue conf 2019 的视频, 特别兴奋, vue3要来了!

vue3是用typescript开发的, 我揣测在vue的带领下typescript会成为主流呢, 要不先学点.

为vue3学点typescript(1), 体验typescript

为vue3学点typescript(1), 体验typescript

19年最酷的前端技术

我是19年初开始使用的 typescript , 自从开始用上了就喜欢上了, 真的爱不释手, 最爱他几点:

  1. 很多小错误比如: 对象的 字段不存 在或者字段名字 拼写错误 , 编辑器会在写代码的时候就提示你, 降低出低级错误的几率.
  2. 标注了类型的变量, 使用的时候编辑器都会列出变量上的方法和属性, 开发体验更舒服.
  3. 很多大神的项目都用typescript开发, 看源码的时候因为有了类型标注, 更容易理解.
  4. 让自己写的代码看起来很厉害的样子:ox:.

为vue3学点typescript(1), 体验typescript

我也希望更多的同行都开始用typescript, 让他成为前端涨工资的又一个工具(回想下webpack和vue给你带来什么, 最早" 吃螃蟹 "的人, 肯定 享受最大的红利 ).

放几个我学习typescript过程中写的项目,自从用了typescript就特别喜欢造轮子, 写的不好, 就是有份热情, 抛砖引玉, 大家肯定能写出更好的.

手势库: https://github.com/any86/any-...

命令式调用vue组件: https://github.com/any86/vue-...

工作中常用的一些代码片段: https://github.com/any86/usef...

一个mini的事件管理器: https://github.com/any86/any-...

typescript工作原理

通过 typescript 命令行工具, 把 typescript 转成 javascript , 从而支持在浏览器运行.

注: 后面的文章中 typescript 简称 ts , javascript 简称 js .

typescript特性

ts和js最大的区别就是ts多了 类型注解 功能, 通过名字中的" type "也能看出语言的重点在" 类型 "上. 这个类型分为 基础类型高级类型 , 高级类型就是通过 基础类型 组成的 自定义类型 .

基础类型

ts中包含了 boolean / number / string / object / 数组(数组的表示有多种, 后续文章会展开) / 元组 / 枚举 / any / Undefined / Null / Void / Never

any是本文的重点, 一会会对他着重讲解.

高级类型

大部分情况是对 object 类型做更细的标注, 此处不多讲, 先放个例子了解即可, 知道关键词 interface 即可, 中文名" 接口 ", 后续章节会展开.

interface Article {
    title: string;
    count: number;
    content: string;
    tags: string[]; // 数组里的元素都是字符串
}

聪明的vscode

当我们使用 vscode 编辑器的时候, 编辑器会根据我们的" 类型注解 "进行 代码提示错误提示 :

为vue3学点typescript(1), 体验typescript

类型写错了, 也会提示:

为vue3学点typescript(1), 体验typescript

动手开始, 安装

  1. 安装nodejs
  2. 在命令行运行 npm i -g typescript , 安装 编译器 到全局.
  3. 安装 vscode编辑器 .

开始写代码

生成js

  1. 建立一个文件夹, 在里面新建一个hello.ts文件, 注意扩展名是 ts .
  2. vscode 打开 hello.ts 文件.
  3. 输入如下代码, 让我们体验下ts:
interface A {
    a:number,
    b:string
}
let obj:A = {a:123,b:'456'};
  1. 命令行进入文件夹, 执行命令
npx tsc hello.ts

好了我们可以看下文件内部多了一个 hello.js , 打开看看:

var obj = { a: 123, b: '456' };

代码中的" 类型注解 "不见了 ,我们的ts被编译成js了, 是不是很神奇.

错误提示

interface A {
    a:number,
    b:string
}
// 错误, 会提示b的类型错误, 应该为string类型
let obj:A = {a:123,b:456};

any类型

any代表任意类型, 这个类型特别适合ts新手, 初期有些类型不知道如何表达, 我们就可以 暂时 使用any表达, 等熟练ts后再标注精准的类型.

下面的情况新手可能就不会了, 以为n标记为number, 但是循环中i大于5的时候就是字符串了, 所以ts就会提示错误.

let n:number;
for(let i = 0;i<10;i++) {
    if(i <= 5) n = 10;
    else n = '100';
}
// ts提示: 不能将类型“"100"”分配给类型“number”

作为新手如果初期你不知道" 联合类型 "这个概念, 你就可以直接把 n 标记为 any :

// 熟练后会是这么标记的 
// let n:string|number
let n:any;
for(let i = 0;i<10;i++) {
    if(i <= 5) n = 10;
    else n = '100';
}

总结

19年ts一定大火, 请大家放心学ts吧, 初期开发可以先用 any 体验ts, 慢慢学习1个月左右其实就可以实战了, 这篇后我也会在 本月陆续更新完本typescript的教程 , 保证大家在一个月内学会.


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

网页美工传奇

网页美工传奇

姜伟 / 机械工业出版社 / 2004-5 / 27.0

本书作为一本专门针对网页美工的书籍,在阐述网页设计理念的基础上,以生动的实例引导读者深入地掌握网页的美工技术,使读者在短时间内就可以迅速地提高自己的美工能力。全书共分为11章,分别介绍色彩知识、设计创意、网页规划、广告、背景、按钮、图形处理、文字效果、动画制作、CSS和JavaScript应用等内容。本书主要面向具有一定Flash和Photoshop基础的读者,对于专业的网页设计人员来说,更是一本......一起来看看 《网页美工传奇》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码