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

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

内容简介:看了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的教程 , 保证大家在一个月内学会.


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

查看所有标签

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

The Smashing Book

The Smashing Book

Jacob Gube、Dmitry Fadeev、Chris Spooner、Darius A Monsef IV、Alessandro Cattaneo、Steven Snell、David Leggett、Andrew Maier、Kayla Knight、Yves Peters、René Schmidt、Smashing Magazine editorial team、Vitaly Friedman、Sven Lennartz / 2009 / $ 29.90 / € 23.90

The Smashing Book is a printed book about best practices in modern Web design. The book shares technical tips and best practices on coding, usability and optimization and explores how to create succes......一起来看看 《The Smashing Book》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具