TypeScript 笔记01

44 阅读2分钟

1.数据类型

//(1)布尔值
let isShow:boolean=false;
//(2)数值
let age:number=30;
//(3)字符串
let str:string='我是你的唯一';
//(4)数组
let list: number[] = [1, 2, 3];//常规定义
let list: Array<number> = [1, 2, 3];  //数组泛型定义
//(5)元组
注释:元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
let x:[string,number];
x=['hellow!',20];  //ok
x = [10, 'hello']; // Error
//(6)枚举
enum Color {Red, Green, Blue};
let c: Color = Color.Green;
//(7)任意值
注释:为在编程阶段不清楚类型的变量指定一个类型
let notSure: any = 4;
//(8)空值
声明一个`void`类型的变量没有什么大用,因为你只能为它赋予`undefined``null`
let usable:void=undefined
//(9)Null和UndefinedTs中,`undefined``null`两者各自有自己的类型分别叫做`undefined``null`
//(10)Never
注释:`never`类型表示的是那些永不存在的值的类型
  `never`类型是任何类型的子类型,也可以赋值给任何类型;
   然而,*没有*类型是`never`的子类型或可以赋值给`never`类型(除了`never`本身之外)。
   即使`any`也不可以赋值给`never`// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
    throw new Error(message);
}
//(11)类型断言 2种方法
方法1:尖括号
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
方法2as语法 如果在ts中使用jsx语法时,只有as类型断言是被允许的
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;

2.声明变量

//(1)let
块级作用域 暂存性死区 不能重复声明变量 不存在变量提升
//(2)const
定义一个常量 被赋值之后不能修改 拥有块级作用域
//(3)解构
//数组
let input = [1, 2];
let [first, second] = input;
console.log(first); // outputs 1
console.log(second); // outputs 2
// ... 用法
let [first, ...rest] = [1, 2, 3, 4];
console.log(first); // outputs 1
console.log(rest); // outputs [ 2, 3, 4 ]
//对象
let o = {
    a: "foo",
    b: 12,
    c: "bar"
};
let { a, b } = o;
//(4)展开运算符
let first = [1, 2];
let second = [3, 4];
let bothPlus = [0, ...first, ...second, 5];