Typescript数据类型和特点

ts的简介

Typescript由Microsoft开发维护的一种开源编程语言。支持Javascript的所有语法和语义,同时作为EACMAScript的超集提供一些额外的功能,如类型检测和更丰富的语法。

 

ts中包含以下几种数据类型

  • number(数字类型)
  • string(字符串类型)
  • array(数组类型)
  • tuple(元组类型)
  • any(任意类型)
  • boolean(布尔类型)
  • undefined
  • null
  • void(没有任何类型)
  • enum(枚举类型)
  • never(其他类型)

ts的特点

TypeScriptJavaScript的超集,为Javascript的生态增加了类型机制,并最终将代码编译为纯粹的Javascript代码,为大型应用而生。有两个特点:一是强类型,强类型的特点是不能随意的更改数据的类型;二是基于类的面向对象编程。Typescript的类型机制可以有效的杜绝变量类型引起的误用问题,他会借助自动编译工具的帮助,在编写代码时减少错误,提高生产力。

ts的优点

  1. TypeScript 是 JavaScript 的超集,.js 文件可以直接重命名为 .ts 即可
  2. 即使没有显式的定义类型,也能够自动做出类型推论
  3. 可以定义从简单到复杂的几乎一切类型
  4. 即使 TypeScript 编译报错,也可以生成 JavaScript 文件
  5. 兼容第三方库,即使第三方库不是用 TypeScript 写的,也可以编写单独的类型文件供 TypeScript 读取
  6. 类型系统增加了代码的可读性和可维护性
  7. 拥有活跃的社区,并且支持ES6规范

ts的缺点

  1. 对没有接触过静态语言的同学有一定的学习成本,需要理解接口(Interfaces)、泛型(Generics)、类(Classes)、枚举类型(Enums)等概念
  2. 短期可能会增加一些开发成本,毕竟要多写一些类型的定义,不过对于一个需要长期维护的项目,TypeScript 能够减少其维护成本
  3. 集成到构建流程需要一些工作量
  4. 可能和一些库结合的不是很完美

number类型(包含整数和浮点数) 

var num:number = 3
num = 3.2
console.log(num) //3.2

string(字符串类型)

var str:string="你好"

array(数组类型)

//第一种
let arr1:number[] = [2, 5, 6, 7]
let arr2:string[]=['2','4','5']

//第二种
let arr3:Array<string>=['34','fd','re']
let arr4:Array<number>=[4,5,6]

//第三种
let arr5:Array<any>=[4,5,'sd',6]

 

tuple(元组类型)

//元组类型属于数组的一种,可以定义多种类型
let arr6:[string,number,boolean]=['ds',3,true]

any(任意类型)

//不受类型限制,可以任意赋值
let type:any='fdf'
type = 3
console.log(type) //3


//任意类型的用法,ts中没有object类型
var box: any = document.getElementById("box");
box.style.color = "red";

enum(枚举类型)

enum flag = {

    success:1,
    error: 0
}

console.log(flag.error) //0

var f:flag = flag.success
console.log(f) //1



//没赋值的默认赋值为索引
enum color = {
    red,
    blue,
    green,
    orange
}

console.log(color.green) //2


//某一个赋值,默认赋值的值往下加1
enum color1= {
    red,
    blue:5,
    green,
    orange
}
console.log(color1.orange) //7

undefined类型

var und:undefined
console.log(und) //undefined

null类型

var n:null
n = null
//一个元素可以设置多个类型,当类型不确定时

var num1: undefined | number | null;

num1 = 435;

console.log(num1); //435

void类型  void 表示没有任何类型,一般用于定义方法的时候方法没有返回值


function run:void(){
    console.log('re')
}
run()


//必须返回数字类型的值
function test:number(){
 return 332
}
console.log(test())

nerver其他类型(包含null和undefined类型)代表不会出现的值

//这意味着声明的never只能被never类型赋值
var d: undefined;
d = undefined;

var e: null;
e = null;

// var m: never;
// m = (() => {
//   throw new Error("错误");
// })();

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值