返回

用好练习题,助你轻松搞定TS

前端

TypeScript (TS) 是一种流行的开源编程语言,用于构建大型应用程序。它是一个超集,这意味着它包含JavaScript的所有特性,还增加了一些额外的功能,例如类型系统和模块系统。这使得TS比JavaScript更强大、更易于维护。

如果你想学习TS,那么练习题是一个非常好的资源。练习题可以帮助你巩固所学知识,并发现自己的薄弱之处。通过做练习题,你可以不断地提高自己的编程技能。

在本文中,我们将为你提供10道TS练习题。这些练习题涵盖了TS的基本语法、类型系统、模块系统等各个方面。请你认真地完成这些练习题,相信你一定会学有所成。

1. 创建一个TS文件,并在其中声明一个名为“name”的变量,并将其值设为“John”。

// 创建一个TS文件
// 文件名:main.ts

// 声明一个名为"name"的变量
let name: string = "John";

// 输出变量的值
console.log(name);

2. 创建一个TS文件,并在其中定义一个名为“add”的函数,该函数接收两个数字作为参数,并返回这两个数字的和。

// 创建一个TS文件
// 文件名:main.ts

// 定义一个名为"add"的函数
function add(a: number, b: number): number {
  return a + b;
}

// 调用add函数,并输出结果
console.log(add(1, 2));

3. 创建一个TS文件,并在其中定义一个名为“Person”的类,该类有一个名为“name”的属性和一个名为“getName”的方法。

// 创建一个TS文件
// 文件名:main.ts

// 定义一个名为"Person"的类
class Person {
  // 构造函数
  constructor(public name: string) {}

  // getName方法
  getName(): string {
    return this.name;
  }
}

// 创建一个Person对象
const person = new Person("John");

// 调用getName方法,并输出结果
console.log(person.getName());

4. 创建一个TS文件,并在其中创建一个名为“MyArray”的数组,该数组包含10个随机数。

// 创建一个TS文件
// 文件名:main.ts

// 创建一个名为"MyArray"的数组
const MyArray: number[] = [];

// 使用循环向数组中添加10个随机数
for (let i = 0; i < 10; i++) {
  MyArray.push(Math.floor(Math.random() * 100));
}

// 输出数组
console.log(MyArray);

5. 创建一个TS文件,并在其中创建一个名为“MySet”的集合,该集合包含10个随机数,且这些随机数不能重复。

// 创建一个TS文件
// 文件名:main.ts

// 创建一个名为"MySet"的集合
const MySet: Set<number> = new Set();

// 使用循环向集合中添加10个随机数
while (MySet.size < 10) {
  MySet.add(Math.floor(Math.random() * 100));
}

// 输出集合
console.log(MySet);

6. 创建一个TS文件,并在其中创建一个名为“MyMap”的映射,该映射包含10对键值对,键为字符串,值为数字。

// 创建一个TS文件
// 文件名:main.ts

// 创建一个名为"MyMap"的映射
const MyMap: Map<string, number> = new Map();

// 使用循环向映射中添加10对键值对
for (let i = 0; i < 10; i++) {
  MyMap.set("key" + i, Math.floor(Math.random() * 100));
}

// 输出映射
console.log(MyMap);

7. 创建一个TS文件,并在其中定义一个名为“sum”的函数,该函数接收一个数组作为参数,并返回数组中所有元素的和。

// 创建一个TS文件
// 文件名:main.ts

// 定义一个名为"sum"的函数
function sum(arr: number[]): number {
  let total = 0;
  for (let i = 0; i < arr.length; i++) {
    total += arr[i];
  }
  return total;
}

// 创建一个数组
const arr = [1, 2, 3, 4, 5];

// 调用sum函数,并输出结果
console.log(sum(arr));

8. 创建一个TS文件,并在其中定义一个名为“filter”的函数,该函数接收一个数组和一个谓词函数作为参数,并返回一个新的数组,其中包含所有通过谓词函数测试的元素。

// 创建一个TS文件
// 文件名:main.ts

// 定义一个名为"filter"的函数
function filter(arr: number[], predicate: (n: number) => boolean): number[] {
  const filteredArr = [];
  for (let i = 0; i < arr.length; i++) {
    if (predicate(arr[i])) {
      filteredArr.push(arr[i]);
    }
  }
  return filteredArr;
}

// 创建一个数组
const arr = [1, 2, 3, 4, 5];

// 定义一个谓词函数
const isEven = (n: number) => n % 2 === 0;

// 调用filter函数,并输出结果
console.log(filter(arr, isEven));

9. 创建一个TS文件,并在其中定义一个名为“map”的函数,该函数接收一个数组和一个映射函数作为参数,并返回一个新的数组,其中包含所有元素通过映射函数转换后的结果。

// 创建一个TS文件
// 文件名:main.ts

// 定义一个名为"map"的函数
function map(arr: number[], mapper: (n: number) => number): number[] {
  const mappedArr = [];
  for (let i = 0; i < arr.length; i++) {
    mappedArr.push(mapper(arr[i]));
  }
  return mappedArr;
}

// 创建一个数组
const arr = [1, 2, 3, 4, 5];

// 定义一个映射函数
const double = (n: number) => n * 2;

// 调用map函数,并输出结果
console.log(map(arr, double));

10. 创建一个TS文件,并在其中定义一个名为“reduce”的函数,该函数接收一个数组、一个初始值和一个归约函数作为参数,并返回一个累积值。

// 创建一个TS文件
// 文件名:main.ts

// 定义一个名为"reduce"的函数
function reduce(
  arr: number[],
  initialValue: number,
  reducer: (accumulator: number, currentValue: number) => number
): number {
  let accumulator = initialValue;
  for (let i = 0; i < arr.length; i++) {
    accumulator = reducer(accumulator, arr[i]);
  }
  return accumulator;
}

// 创建一个数组
const arr = [1, 2, 3, 4, 5];

// 定义一个归约函数
const sum = (accumulator: number, currentValue: number) => accumulator + currentValue;

// 调用reduce函数,并输出结果
console.log(reduce(arr, 0, sum));

希望这些练习题对你有帮助!