TS学习-1--基础类型与其声明

TypeScript是什么(摘自菜鸟教程介绍)
  • TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准。
  • TypeScript 由微软开发的自由和开源的编程语言。
  • TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。
与JavaScript类型比较
JavaScript typescript
String Number Boolean Array Object string number boolean Array Object enum Any Void Null Undefined Never
typescript中新增基础类型 enum Any Void Null Undefined Never

枚举 eunm

  • 可以为一组数值赋值友好的名称
  • 默认情况重0开始赋值子等增长 可以手动更改第一个基数 也可以全部自定义值

Any 动态类型

  • 可以在改字段声明的变量调用任意的方法 跳过编译器检查
  • 当用与数组的时候 可以初始化任何数据类型

Void undefined和null

  • 标示没有任何类型 一般用于无返回值的函数 声明一个void变量没声明大用 因为只能赋予
    undefined和null
  • Undefined 和null默认是所有类型的字类型,但是在严格模式(–strictNullChecks)下undefined和null只能赋值给void和他们各自 如果变量类型可以是多种,可以使用联合类型 string | number | undefined

Never

  • 永远不存在的值类型
  • 任何类型的子类型
  • 除了never之外 没有类型可以赋值给never
变量声明
  • ts变量声明方式:let 变量:类型 = 值;
  • 模版字符串:可以定义多行文本和内嵌表达式。这种字符串需要被反单引号包围,并且以${expr}形式嵌入。

数组声明方式:

  • 通过在类型后面加[] let 变量:类型[] = 值;
  • 使用数组范型 let 变量:Array<类型> = 值;
声明关键字
  • var
    • 定义局部变量和全局变量 <=> 作用域或者函数作用域
  • let
    • 块作用域
  • const
    • 对let的增强 只能赋值一次 不能重新赋值
    • 块作用域
  • 解构
    • 概念:解构赋值语法是JavaScript表达式,使得将值从数组、属性从对象,提取到不同的变量中成为可能。
    • 解构数组
    • 解构对象

测试

// 原来js类型 String Number Boolean Array Object
// ts中的类型 string number boolean Array Object enum Any Void Null Undefined Never

// 关键字let:let允许你声明一个作用域被限制在块级中的变量、语句或者表达式。与var关键字不同的是,var声明的变量只能是全局或者整个函数块的

// 声明方式
// js var a = 1;
// ts

let a: number = 1;
console.log(a);

// 模版字符串
let firstname: string = `啦啦啦`;

let lastname: string = `德玛西亚`;

let fullname: string = `这个人的名字是${firstname}:${lastname}`

console.log(fullname);

//数组的声明
let bers: number[] = [1, 2, 3];

let bers2: Array = [4, 5, 6];

console.log(bers, bers2);

// 元组Tuple 允许表示一个已知元素数量和类型的数组,各个元素的类型不必相同

let x: [string, number];
x = ['aaa', 2]

console.log(x[1].toString());

// x[2] = true;

console.log(x);

// 枚举
enum Color { red, green, bule };

let c: Color = Color.green;
console.log(c);
let ColorName: string = Color[2];
console.log(ColorName);

// any 动态类型 可以跳过编译器检查
let anysorce: any = 5;
console.log(anysorce.toFixed(2));

let list: any[] = [1, true, false, 'aaaa'];
console.log(list[1]);

// void undefined null

// never

// object
// 类型断言 当在使用jsx时 只有as语法断言是被允许的
let someValue: any = 'i am mozi';
let stringLength: number = (someValue).length;
let stringLength2: number = (someValue as string).length;
console.log(stringLength, stringLength2);

你可能感兴趣的:(typescript,---TS)