TypeScript(简称TS)是一种由微软开发的开源编程语言,它是JavaScript的一个超集,添加了类型系统和一些其他特性,使得开发大型应用更加容易和可靠。以下是一些常见的TypeScript语法特性:
类型注解:为变量、函数参数和返回值指定类型。
let isDone: boolean = false; let myName: string = "TypeScript"; let myAge: number = 30;
接口:定义对象的结构,常用于类型检查和保证对象形状。
interface Person { name: string; age: number; } function greeter(person: Person) { console.log(`Hello, ${person.name}! You are ${person.age} years old.`); }
类:使用类来创建对象,支持继承。
class Animal { name: string; constructor(name: string) { this.name = name; } move(distanceInMeters: number = 0) { console.log(`${this.name} moved ${distanceInMeters}m.`); } }
泛型:允许创建可重用的代码,适用于多种类型的数据。
function identity<T>(arg: T): T { return arg; } let output = identity<string>("myString");
模块:使用模块来组织代码。
module MyModule { export function sayHello(name: string) { return `Hello, ${name}`; } } let message = MyModule.sayHello("TypeScript");
命名空间:用于创建一个用于存放相关变量、类、接口等声明的容器。
namespace MyNamespace { export class MyClass { public myMethod() { console.log('Hello from myMethod'); } } }
类型别名:为复杂的类型或经常使用的类型指定一个更简单的名称。
type Name = string; type EMail = string; type Person = { name: Name; email: EMail; };
类型断言:告诉编译器“相信我,我知道自己在干什么”。
let myFavoriteNumber: any = 'seven'; let myFavoriteNumberIsNumber = (myFavoriteNumber as number);
联合类型:允许一个变量可以是几种类型之一。
let myVariable: string | number; myVariable = 'This is a string'; myVariable = 42; // 也可以是一个数字
类型守卫:一种方式来检查一个变量是否具有特定的类型。
function isString(value: any): value is string { return typeof value === 'string'; }
枚举:一种特殊的类型,用于定义一组命名的常数。
enum Color {Red, Green, Blue} let c: Color = Color.Green;
装饰器:允许在类或类的成员上添加元数据。
function logClass(target: Function) { console.log(target); } @logClass class MyClass { name: string; }
异步和等待:支持异步操作和基于Promise的异步编程。
async function asyncFunction() { return new Promise(resolve => { setTimeout(() => { resolve("Done!"); }, 1000); }); } async function useAsyncFunction() { console.log(await asyncFunction()); }
TypeScript提供了这些和其他许多特性,使得它成为了开发大型、健壮的JavaScript应用程序的强大工具。