TypeScript 程序的基本结构可以分为几个部分,每个部分都有特定的作用。
以下是 TypeScript 程序的常见组成部分:
let
, const
和 var
的使用。import
和 export
组织代码。async/await
。try/catch
进行错误捕捉。以上几个部分共同构成了 TypeScript 程序的基本结构,并为开发者提供了强大的类型检查、代码结构和可维护性。
类型声明:TypeScript 是一种静态类型的语言,可以通过类型声明来定义变量、函数、类等的类型。类型声明可以帮助代码更具可维护性和可读性。
1 2 |
let name: string = "Alice"; let age: number = 30; |
接口声明:用于定义对象的结构,包括对象的属性和方法。
1 2 3 4 |
interface Person { name: string; age: number; } |
在 TypeScript 中,可以使用 let, const, 和 var 来声明变量。推荐使用 let 和 const,var 用法不再推荐。
1 2 |
let age: number = 25; const pi: number = 3.14; |
函数声明:TypeScript 允许声明带有类型注解的函数,包括参数类型和返回值类型。
1 2 3 |
function greet(name: string): string { return "Hello, " + name; } |
箭头函数:TypeScript 同样支持 ES6 的箭头函数,使用简洁的语法来声明函数。
1 |
const greet = (name: string): string => "Hello, " + name; |
TypeScript 提供对面向对象编程的支持,允许定义类和类的方法、属性。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Person { name: string; age: number; constructor(name: string, age: number) { this.name = name; this.age = age; } greet() { return `Hello, my name is ${this.name}`; } } |
接口(Interface):用于描述对象的形状,接口可以继承和扩展。
1 2 3 4 5 |
interface Animal { name: string; sound: string; makeSound(): void; } |
类型别名(Type Alias):允许为对象类型、联合类型、交叉类型等定义别名。
1 |
type ID = string | number; |
TypeScript 支持模块化编程,可以使用 import 和 export 来组织代码。
导出:
1 2 3 |
export class Person { constructor(public name: string) {} } |
导入:
1 |
import { Person } from './person'; |
在某些情况下,TypeScript 无法推断出一个变量的准确类型,开发者可以使用类型断言来强制指定类型。
1 2 |
let value: any = "hello"; let strLength: number = (value as string).length; |
泛型允许在定义函数、接口或类时不指定具体类型,而是使用占位符,让用户在使用时传入具体类型。泛型能够增加代码的复用性和类型安全性。
1 2 3 |
function identity<T>(arg: T): T { return arg; } |
注释在 TypeScript 程序中用于解释代码的作用、思路等,增加代码的可读性。
单行注释:
1 |
// 这是一个单行注释 |
1 2 |
/* 这是一个 多行注释 */ |
TypeScript 在某些情况下会自动推断变量的类型。例如,在声明变量并赋值时,TypeScript 会推断出该变量的类型。
1 |
let num = 10; // TypeScript 推断 num 为 number 类型 |
TypeScript 提供了类型守卫(如 typeof 和 instanceof),用于在运行时缩小变量的类型范围。
1 2 3 |
function isString(value: any): value is string { return typeof value === 'string'; } |
TypeScript 完全支持异步编程,可以使用 async/await 语法来处理异步操作。
1 2 3 4 5 |
async function fetchData(): Promise<string> { const response = await fetch("https://example.com"); const data = await response.text(); return data; } |
TypeScript 允许使用 try/catch 块进行错误处理,还可以使用类型来描述错误的类型。
1 2 3 4 5 6 7 |
try { throw new Error("Something went wrong"); } catch (error) { if (error instanceof Error) { console.error(error.message); } } |
from:https://www.runoob.com/typescript/typescript-basic-structure.html