什么是TypeScript?

介绍

  1. JavaScript 的超集。

  2. 面向对象且强类型的编程语言。

  3. TypeScript 代码会被转换为 JavaScript,可在任何支持 JavaScript 的环境中使用,

  4. 包括浏览器、Node.js 以及您自己的应用程序。

TypeScript 中的数组

使用方括号([]):

let numbers: number[] = [1, 2, 3, 4, 5];
let strings: string[] = ['a', 'b', 'c'];

使用数组泛型类型:

let numbers: Array<number> = [1, 2, 3, 4, 5];
let strings: Array<string> = ['a', 'b', 'c'];

混合数组类型:

let mixed: (number | string)[] = [1, 'two', 3, 'four'];

使用元组(固定长度和类型):

let tuple: [number, string, boolean] = [1, 'hello', true];

TypeScript 的缺点

  1. TypeScript 代码的编译时间较长。

  2. TypeScript 不支持抽象类。

  3. 将 TypeScript 转换为 JavaScript 需要额外的编译步骤。

  4. 它的类型方案极其复杂。

never 和 any 关键区别 never:

用于不返回值的函数。 表示永远不会出现的值。 对详尽的类型检查很有用。 any:

禁用变量的类型检查。 可以保存任何类型的值。 对于将 JavaScript 迁移到 TypeScript 或处理动态数据很有用。

元组

// 定义我们的元组
let ourTuple: [number, boolean, string];
​
// 初始化错误会抛出错误
ourTuple = [false, 'Coding God was mistaken', 5];

plaintext

// 定义我们的元组
let ourTuple: [number, boolean, string];
// 正确初始化
ourTuple = [5, false, 'Coding God was here'];
// 对于索引 3 及以上,我们的元组没有类型安全
ourTuple.push('Something new and wrong');
console.log(ourTuple);

新的值 元组仅对初始值具有强定义的类型:

// 定义我们的只读元组
const ourReadonlyTuple: readonly [number, boolean, string] = [5, true, 'The Real Coding God'];
// 会抛出错误,因为它是只读的
ourReadonlyTuple.push('Coding God took a day off');

函数

// 这里的 `: number` 指定此函数返回一个数字
function getTime(): number {
  return new Date().getTime();
}

可选参数

// 这里的 `?` 操作符将参数 `c` 标记为可选
function add(a: number, b: number, c?: number) {
  return a + b + (c || 0);
}

默认参数

function pow(value: number, exponent: number = 10) {
  return value ** exponent;
}

对象作为参数

function divide({ dividend, divisor }: { dividend: number, divisor: number }) {
  return dividend / divisor;
}

剩余参数

function add(a: number, b: number,...rest: number[]) {
  return a + b + rest.reduce((p, c) => p + c, 0);
}
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

幻想多巴胺

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

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

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

打赏作者

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

抵扣说明:

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

余额充值