TypeScript常见语法
时间: 2024-08-16 20:09:37 浏览: 51
Typescript语法手册
4星 · 用户满意度95%
TypeScript是JavaScript的一个超集,增加了静态类型系统和其他面向对象编程特性的支持。以下是TypeScript的一些常见语法特性:
1. **声明变量与类型注解**: TypeScript引入了`let`、`const`和`var`之外的`type`关键字来声明类型,比如:
```typescript
let name: string; // 声明一个字符串类型的变量
const age: number = 25; // 定义一个常量并指定其类型
type Person = { name: string, age: number }; // 定义一个接口表示一个人
```
2. **数组和元组**: 类似JavaScript,但可以明确指定元素类型:
```typescript
let numbers: number[] = [1, 2, 3]; // 数组类型
let point: [number, number] = [0, 0]; // 元组类型
```
3. **接口(Interface)**: 描述对象结构,可用于类型安全地强制数据一致性:
```typescript
interface PersonInterface {
firstName: string;
lastName: string;
}
```
4. **类(Class)**: 和JavaScript的构造函数相似,但有更丰富的继承和方法封装机制:
```typescript
class Car {
make: string;
model: string;
constructor(make: string, model: string) {
this.make = make;
this.model = model;
}
drive() {
console.log(`Driving a ${this.make} ${this.model}`);
}
}
```
5. **泛型(Generics)**: 提供了一种重用代码的方式,参数化类型:
```typescript
function identity<T>(value: T): T {
return value;
}
```
6. **类型断言(Type Assertion)**: 当你知道某个值的具体类型时,可以用作类型提示:
```typescript
let obj: any = { prop: 'hello' };
if (obj instanceof Object) { // 这里使用Type Assertion
let strProp: string = obj.prop;
}
```
7. **类型守卫(Type Guard)**: 类似条件判断,但会进行类型验证:
```typescript
function isNumber(value: unknown): value is number {
return typeof value === 'number';
}
let maybeNum = 5;
if (isNumber(maybeNum)) {
console.log(`${maybeNum} is a number`);
}
```
**相关问题--:**
1. 泛型在TypeScript中有哪些应用场景?
2. TypeScript如何处理JavaScript中的动态类型?
3. 类与构造函数在TypeScript中的区别是什么?
阅读全文