帮忙给几道typescript的笔试代码题
时间: 2023-08-11 15:01:44 浏览: 112
当然,我可以给你一些 TypeScript 的笔试代码题。以下是几道常见的 TypeScript 题目:
1. 题目:实现一个计算器类,包含加法(add)和减法(subtract)两个方法,要求能够接收两个数字作为参数,并返回它们的运算结果。
```typescript
class Calculator {
add(a: number, b: number): number {
return a + b;
}
subtract(a: number, b: number): number {
return a - b;
}
}
const calculator = new Calculator();
console.log(calculator.add(5, 3)); // 输出:8
console.log(calculator.subtract(5, 3)); // 输出:2
```
2. 题目:实现一个泛型队列类,包含入队(enqueue)和出队(dequeue)两个方法,要求能够接收任意类型的元素,并按照先进先出的顺序进行操作。
```typescript
class Queue<T> {
private data: T[] = [];
enqueue(item: T) {
this.data.push(item);
}
dequeue(): T | undefined {
return this.data.shift();
}
}
const queue = new Queue<number>();
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
console.log(queue.dequeue()); // 输出:1
console.log(queue.dequeue()); // 输出:2
console.log(queue.dequeue()); // 输出:3
```
3. 题目:实现一个函数,接收一个对象数组,并按照指定的属性进行排序,要求能够支持升序和降序两种排序方式。
```typescript
type Person = {
name: string;
age: number;
};
function sortPeople(people: Person[], property: keyof Person, ascending: boolean): Person[] {
return people.sort((a, b) => {
if (a[property] < b[property]) {
return ascending ? -1 : 1;
}
if (a[property] > b[property]) {
return ascending ? 1 : -1;
}
return 0;
});
}
const people: Person[] = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 20 }
];
console.log(sortPeople(people, 'age', true)); // 输出:[{ name: 'Charlie', age: 20 }, { name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }]
console.log(sortPeople(people, 'name', false)); // 输出:[{ name: 'Charlie', age: 20 }, { name: 'Bob', age: 30 }, { name: 'Alice', age: 25 }]
```
希望这些题目能够帮助到你!如果还有其他问题,请随时提问。
阅读全文