基本语法
- · -
这一节是 Typescript 的基础知识
1. 变量声明与类型注解
介绍如何声明变量并为其添加类型注解,以及基本的数据类型和类型推断。 示例代码:
let name: string = "John";
let age: number = 25;
let isStudent: boolean = true;
let hobbies: string[] = ["reading", "running", "cooking"];
2. 函数与箭头函数
讲解如何定义函数和箭头函数表达式,并介绍参数类型注解和返回值类型注解。 示例代码:
function add(a: number, b: number): number {
return a + b;
}
const multiply = (a: number, b: number): number => {
return a * b;
};
3. 类型与接口
介绍如何定义类和接口,并讲解类的继承和接口的实现。
3.1 使用接口声明属性和方法
可以使用 interface
关键字,来声明一个接口,接口中可以包含属性和方法。
interface Person {
readonly name: string;
readonly age: number;
greet(): void;
}
class Student implements Person {
readonly name: string;
readonly age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet(): void {
console.log(`大家好,我是 ${this.name}. 我 ${this.age} 岁了`);
}
}
class Student2 implements Person {
constructor(readonly name: string, readonly age: number) {
this.name = name;
this.age = age;
}
greet(): void {
console.log(`大家好,我是 ${this.name}. 我 ${this.age} 岁了`);
}
}
const student: Person = {
name: "何方",
age: 10,
greet() {
console.log("你好");
},
};
3.2 使用接口声明函数
interface
关键字还可以用来声明函数。
interface Sum {
(a: number, b: number): number;
}
const sum: Sum = (a, b) => a + b;
3.3 使用 type
声明类型
type
关键字可以用来声明类型别名。
type Person = {
name: string;
age: number;
};
const person: Person = {
name: "何方",
age: 25,
};
3.4 可选属性
接口和 type
中的属性可以使用 ?
来表示可选属性。
interface Person {
name: string;
age?: number;
}
type PersonType = {
name: string;
age?: number;
};
const person: Person = {
name: "何方",
};
const person2: PersonType = {
name: "何方",
};
4. 命名空间与模块
介绍如何使用命名空间和模块来组织和管理代码。 示例代码:
// app.ts
namespace App {
export const version = "1.0.0";
export function sayHello(name: string): string {
return `Hello, ${name}!`;
}
}
module AppModule {
export const version = "1.2.0";
export function func(): string {
return "xxx";
}
}
console.log(App.version);
console.log(App.sayHello());
console.log(AppModule.version);
console.log(AppModule.func());
5. 数组与元组
讲解如何声明和操作数组,以及元组的基本用法。
let numbers: number[] = [1, 2, 3, 4, 5];
let person: [string, number] = ["John", 25];
6. 枚举
讲解如何定义枚举类型和联合类型,以及如何使用它们。 示例代码:
enum Color {
Red = "RED",
Green = "GREEN",
Blue = "BLUE",
}
type Shape = "circle" | "square" | "triangle";
let color: Color = Color.Red;
let shape: Shape = "circle";
希望以上示例代码和对你有帮助!如果需要进一步了解每个章节的详细内容,你可以点击对应的,它们将带你进入 TypeScript 官方文档的相关部分。
7. any, never, unknown 类型
7.1 any
any
类型可以表示任意类型,当你不知道变量的类型时,可以使用 any
类型。
let a: any = 1;
a = "hello";
a = true;
7.2 never
never
类型表示永远不会发生的类型,通常用于函数的返回值类型,当函数抛出异常或者永远不会返回时,可以使用 never
类型。
function throwError(): never {
throw new Error("error");
}
function infiniteLoop(): never {
while (true) {}
}
7.3 unknown
unknown
类型表示未知类型,它与 any 类型的区别在于,unknown
类型的变量不能直接赋值给其他类型的变量,需要先进行类型判断。
let a: unknown = 1;
let b: number = a; // Error: Type 'unknown' is not assignable to type 'number'.
if (typeof a === "number") {
let c: number = a;
}
参考文档
该内容为何方原创,转载请注明本页地址
https://iamhefang.cn/tutorials/typescript/基本语法