前提

JS缺陷

(1)变量频繁变换类型,类型不明确难以维护

TS定义

(1)定义
以JavaScript为基础构建的语音,一个JavaScript的超集,扩展js添加了类型,
可以在任何支持js的平台中执行 #TS不能被JS解析器(浏览器)直接执行,需要将TS编译为JS

TS开发环境搭建

(1)使用npm 全局安装typeScript
npm i -g typescripts
tsc -v //查看版本
(2)创建ts文件
(3)使用tsc对ts文件进行编译
tsc xxx.ts
(4)tsc --init //生成tsconfig.json配置文件 可指定编译js的版本 #注意 tsc运行ts文件报错系统禁止允许脚本
`解决方案`:
(1)使用管理员身份打开powershell 输入指令 set-ExecutionPolicy RemoteSigned 命令 选择Y或者A
(2)get-ExecutionPolicy 命令--- 执行策略已被更改为 RemoteSigned

类型

基本类型

类型声明为小写

  • 类型声明

    • 通过类型声明指定TS变量(参数,形参)的类型

    • 声明类型后,变量只能使用声明类型的值

    • 语法

      let 变量:类型;
      let 变量:类型=值;
      function fn(参数:类型,参数:类型):类型{
      ... //第三个‘类型’为返回值的类型
      }
      eg:
      let a: number; //声明变量为number类型
      let b: string;//声明变量为number类型
      let c: boolean; //声明变量为boolean类型
      let c=true ;//ts自动判断为布尔类型 function sum(a:number,b:number) : number{//(1)声明形参为number类型,(2)返回值为number
      return a+b;
      }
      sum(a=123,b=456)
  • 自动类型判断

    • TS拥有类型判断机制
    • 变量的声明和赋值同时进行时,TS编译器会自动判断变量的类型
  • 类型

    类型 案例 描述
    number 1, -2, 3.5 数字
    string 'hello' 字符串
    boolean true 布尔
    字面量 其本身
    any * 任意类型
    void 空值 空类型
    never 没有值 不能是任意值
    object {name:lht} js对象
    array [1,2,3] js数组
    tuple [4,5] 元素,固定长度数组
    enum enum(a,b) 枚举,ts新增类型
    unkown * 类型安全的any

新增ES6新特性

配置选项

开发工具

TyepScript学习的更多相关文章

  1. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  2. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  3. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  4. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  5. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  6. Unity3d学习 制作地形

    这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...

  7. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  8. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

  9. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

随机推荐

  1. 8 个有用的 HTML5 标签

    作为一个 web 前端开发者,在制作页面的时候你会从一大堆不同的标签中选择合适的标签来完成相应的功能.有些 HTML5 标签广为流传,例如 <article> <header> ...

  2. 使用Web存储API存取本地数据

    使用Web存储API TODO:本文由 赤石俊哉 翻译整理,您可以将本文自由地用于学习交流.如需用于其他用途请征得作者的同意. 原文链接:Using the Web Storage API - Moz ...

  3. 微信h5静默和非静默授权获取用户openId和用户信息的方法和步骤:

    原文链接:https://blog.csdn.net/qq_35430000/article/details/79299529 一.openId是什么?openId是用户在当前公众号下的唯一标识('身 ...

  4. 一像素边框的问题(使不同dpr设备完美显示1px的border)

    问题:不同dpr的屏幕有不同的屋里像素值,而我们css像素的1px由于不同屏幕的渲染会导致宽度并不一样: 例如: dpr为2的retina屏幕是有四个物理像素点(真实屏幕上的点)组成一个逻辑(css) ...

  5. CommonsCollection6反序列化链学习

    CommonsCollection6 1.前置知识 1.1.HashSet HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合.继承了序列化和集合 构造函数参数为空的话创建一 ...

  6. Mybatis多表查询出现null字段

    写在前面 今天使用mybatis实现多表查询,记录一下其中遇到的坑 mybatis多表查询简介 mybatis多表查询主要有两个方式,通俗易懂的来说就是一个是查询少量属性(association),一 ...

  7. int bool str

    一. python的基本数据类型 1. int 整数 2. bool 布尔.  判断.  if  while 3. str  字符串 ,一般存放小量的数据 4. list  列表. 可以存放大量的数据 ...

  8. 领域驱动模型DDD(二)——领域事件的订阅/发布实践

    前言 凭良心来说,<微服务架构设计模式>此书什么都好,就是选用的业务过于庞大而导致代码连贯性太差,我作为读者来说对于其中采用的自研框架看起来味同嚼蜡,需要花费的学习成本实在是过于庞大,不仅 ...

  9. AWS - Basic 1

    之前由于公司 Training 考取了 AWS-SAP 的证书,更多理解的是概念和理论上的知识,并未实操.但对于学习一门技术来说,实践是加深理解和掌握该技术的必经之路,强调知行合一.所以最近打算重新熟 ...

  10. 史上最全log4j2远程命令执行漏洞汇总报告

    已投稿信安之路公众号,文章链接