TypeScript详解一:TS安装、初始化配置、简单数据类型


一、TypeScript是什么?

TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。

二、使用步骤

1.全局安装tsc

  • 运行 npm insatll tsc -g, 将tsc安装到全局

2.初始化ts配置文件

  • 运行tsc --init,会产生一个tsconfig.json文件,里面是ts的配置信息
    在这里插入图片描述

3.创建一个ts文件

  • 创建一个1.ts文件
    在这里插入图片描述

4.编写第一行ts代码,并运行

  • let a = 1;
  • 运行 tsc 1.ts
  • 此时会生成一个1.js文件,那么第一个ts文件就运行成功了
    在这里插入图片描述

三、ts中的基本数据类型

  • 基本类型
let isShow: boolean = true; 
let a: number = 10;
let b: string = 'hello';
let arr1: number[] = [1, 2, 3]; // arr1和arr2等价
let arr2: Array<number> = [4, 5, 6]; // arr1和arr2等价
  • 元组类型 tuple
// 数量和类型已知的数组
let start: [number, string, boolean, number[]] = [1, 'hello', true, [1, 2, 3]];
  • 枚举类型 enum
// 1) 普通枚举
enum Person{
  NAME,
  AGE
}
console.log(Person.NAME, Person[Person.NAME]); // 0 NAME
console.log(Person.AGE, Person[Person.AGE]); // 1 AGE
// 2) 常量枚举
const enum Colors{
  RED,
  BLUE,
  YELLOW,
  GREEN
}
console.log([Colors.RED, Colors.BLUE, Colors.YELLOW, Colors.GREEN]);
  • 任意类型 any
// 变量定义为any类型,那么就不进行类型检查了
let app1: any = document.getElementById('app');
app1.style.color = "#fff";

let app2: (HTMLElement | null) = document.getElementById('app');
// 如果app2为null,那么需要加非空断言 app2!.style.color
app2!.style.color = "#ccc";

// null undefined 是其他类型的子类型
let j: number = 1;
j = 2;
/* j = undefined;
j = null;
*/

// 注意:如果设置strictNullChecks为true,那么不能直接将值改为null undefined
// 解决办法1:
let k: number | undefined | null = 1;
k = 2;
k = undefined;
k = null;
// 解决办法2
let m: number = 1;
m = 2;
let m1:undefined = undefined;
let m2: null = null;
let m3: any = undefined;
let m4: any = null;

  • never 类型
// 作为不会返回的函数的返回值类型
function error(msg: string):never {
  throw new Error('error!!!');
  // 抛出异常直接就结束了,并不会打印,此时就是never类型
  console.log(msg);
}

function loop(): never{
  while (true) {
    console.log('迭代');
  }
  // 此处不会执行,所以是never类型
  console.log('结束')
}

function fn(a: number | string) {
  if (typeof a === 'number') {
    console.log(a);
  } else if (typeof a === 'string') {
    console.log(a);
  } else {
    console.log(a); // never,不会执行
  }
}
  • void 类型
// 函数没有返回值,那么就是void类型
// 注意:strictNullChecks为true时,不能将null赋值给void,strictNullChecks为false时,可以将null赋值给void
// void和never类型的区别:
// 1)void类型可以被赋值为null或者undefined,never不行
// 2)返回为void类型的函数还能执行,返回为never类型的函数不能执行(要么抛出异常,要么不执行)
function fun(): void {
  // return undefined;
  // return null;
}
  • symbol 类型
// 用来记录唯一且不变的值
const n1 = Symbol('key');
const n2 = Symbol('key');
// This condition will always return 'false' since the types 'typeof n1' and 'typeof n2' have no overlap.
// console.log(n1 == n2);
  • bigint 类型
// 安全存储超大数字
// const max = Number.MAX_SAFE_INTEGER; // 表示js能记录的最大值 2**53-1
// console.log(max + 1 === max + 2); // true 因为已经是最大值了无法计算,所以是true

const max = BigInt(Number.MAX_SAFE_INTEGER);
console.log(max + BigInt(1) === max + BigInt(2)); // false 转成BigInt类型后可安全计算,所以是false

总结

记录下ts的一些知识,下次再见

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在 TypeScript 中,你可以使用解构赋值语法来给多个变量同时赋值。例如: ``` let a, b, c; [a, b, c] = [1, 2, 3]; ``` 这样就可以同时给 `a`、`b` 和 `c` 这三个变量赋值为 `1`、`2` 和 `3`。 如果你想给多个变量赋相同的值,可以使用下面的方式: ``` let a, b, c; [a, b, c] = [1, 1, 1]; ``` 或者使用解构赋值的解构模式,例如: ``` let a, b, c; [a, b, c] = [{}, {}, {}]; ``` 这样就可以给 `a`、`b` 和 `c` 这三个变量赋一个空对象的值。 ### 回答2: 在TypeScript中,我们可以使用解构赋值语法来批量给多个变量初始化同一个值。解构赋值是ES6引入的一种语法,可以方便地将属性或数组元素的值赋给多个变量。 假设我们有多个变量需要初始化为同一个值,可以先定义一个待赋值的变量,然后使用解构赋值将其值赋给其他变量。例如,我们有三个变量a、b和c,它们都需要初始化为同一个初始值: ```typescript let initValue = 0; let a, b, c; // 使用解构赋值将initValue的值分别赋给a、b和c [a, b, c] = [initValue, initValue, initValue]; ``` 通过以上代码,我们成功将多个变量初始化为相同的初始值0。 另外,我们也可以通过数组的fill()方法来批量给多个变量初始化同一个值。fill()方法可以用指定的值填充一个数组中的所有元素。我们可以创建一个长度为变量个数的数组,然后使用fill()方法将指定的初始值填充到数组中,最后使用解构赋值将数组的值赋给多个变量。 ```typescript let initValue = 0; let a, b, c; // 创建一个长度为3的数组,使用fill()方法填充为指定初始值 [a, b, c] = Array(3).fill(initValue); ``` 以上代码同样可以实现将多个变量初始化为初始值0的效果。 无论是使用解构赋值还是数组的fill()方法,我们都可以方便地给多个变量批量初始化同一个值,提高了代码的可读性和简洁性。 ### 回答3: 对于 TypeScript,可以使用以下方法批量给多个变量初始化相同的值: 1. 使用数组解构赋值:将变量名放入一个数组中,然后使用解构赋值将数组中的值赋给变量。 例如: ``` let [a, b, c] = Array(3).fill(0); ``` 上述代码将变量a、b、c同时初始化为0。 2. 使用对象字面量赋值:将多个变量名放入一个对象中,然后使用对象字面量赋值的方式给对象的属性赋值。 例如: ``` let {a, b, c} = {a: 0, b: 0, c: 0}; ``` 上述代码将变量a、b、c同时初始化为0。 3. 使用循环遍历赋值:使用循环结构(如for循环)遍历变量名数组,并为每个变量赋相同的初始值。 例如: ``` let variables = ['a', 'b', 'c']; let value = 0; for (let i = 0; i < variables.length; i++) { let variable = variables[i]; // 使用eval函数将变量名字符串转换为实际的变量 eval(`${variable} = ${value}`); } ``` 上述代码将变量a、b、c同时初始化为0。 无论使用哪种方法,都能够批量给多个变量初始化相同的值。选择合适的方式取决于具体场景和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

剑九 六千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值