TypeScript 学习笔记

TypeScript(简称TS)是一种由微软开发的开源编程语言,它是JavaScript的一个超集,添加了类型系统和一些其他特性,使得开发大型应用更加容易和可靠。以下是一些常见的TypeScript语法特性:

  1. 类型注解:为变量、函数参数和返回值指定类型。

    let isDone: boolean = false;
    let myName: string = "TypeScript";
    let myAge: number = 30;
    
  2. 接口:定义对象的结构,常用于类型检查和保证对象形状。

    interface Person {
      name: string;
      age: number;
    }
    
    function greeter(person: Person) {
      console.log(`Hello, ${person.name}! You are ${person.age} years old.`);
    }
    
  3. :使用类来创建对象,支持继承。

    class Animal {
      name: string;
      constructor(name: string) { this.name = name; }
      move(distanceInMeters: number = 0) {
        console.log(`${this.name} moved ${distanceInMeters}m.`);
      }
    }
    
  4. 泛型:允许创建可重用的代码,适用于多种类型的数据。

    function identity<T>(arg: T): T {
      return arg;
    }
    
    let output = identity<string>("myString");
    
  5. 模块:使用模块来组织代码。

    module MyModule {
      export function sayHello(name: string) {
        return `Hello, ${name}`;
      }
    }
    
    let message = MyModule.sayHello("TypeScript");
    
  6. 命名空间:用于创建一个用于存放相关变量、类、接口等声明的容器。

    namespace MyNamespace {
      export class MyClass {
        public myMethod() {
          console.log('Hello from myMethod');
        }
      }
    }
    
  7. 类型别名:为复杂的类型或经常使用的类型指定一个更简单的名称。

    type Name = string;
    type EMail = string;
    
    type Person = {
      name: Name;
      email: EMail;
    };
    
  8. 类型断言:告诉编译器“相信我,我知道自己在干什么”。

    let myFavoriteNumber: any = 'seven';
    let myFavoriteNumberIsNumber = (myFavoriteNumber as number);
    
  9. 联合类型:允许一个变量可以是几种类型之一。

    let myVariable: string | number;
    myVariable = 'This is a string';
    myVariable = 42; // 也可以是一个数字
    
  10. 类型守卫:一种方式来检查一个变量是否具有特定的类型。

    function isString(value: any): value is string {
      return typeof value === 'string';
    }
    
  11. 枚举:一种特殊的类型,用于定义一组命名的常数。

    enum Color {Red, Green, Blue}
    let c: Color = Color.Green;
    
  12. 装饰器:允许在类或类的成员上添加元数据。

    function logClass(target: Function) {
      console.log(target);
    }
    
    @logClass
    class MyClass {
      name: string;
    }
    
  13. 异步和等待:支持异步操作和基于Promise的异步编程。

    async function asyncFunction() {
      return new Promise(resolve => {
        setTimeout(() => {
          resolve("Done!");
        }, 1000);
      });
    }
    
    async function useAsyncFunction() {
      console.log(await asyncFunction());
    }
    

TypeScript提供了这些和其他许多特性,使得它成为了开发大型、健壮的JavaScript应用程序的强大工具。

相关推荐

  1. typescript学习笔记

    2024-05-16 03:30:06       30 阅读
  2. TypeScript 学习笔记

    2024-05-16 03:30:06       16 阅读
  3. TypeScript 学习笔记

    2024-05-16 03:30:06       16 阅读
  4. TypeScript 学习笔记

    2024-05-16 03:30:06       12 阅读
  5. Typescript学习笔记

    2024-05-16 03:30:06       14 阅读
  6. TypeScript 学习笔记

    2024-05-16 03:30:06       15 阅读
  7. Typescript 学习笔记

    2024-05-16 03:30:06       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-16 03:30:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-16 03:30:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-16 03:30:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-16 03:30:06       20 阅读

热门阅读

  1. VO、DTO、DO、PO 详解 + 举例说明

    2024-05-16 03:30:06       11 阅读
  2. Python 无法联网环境如何安装python包

    2024-05-16 03:30:06       10 阅读
  3. 软件工程课程设计之酒店管理系统的设计与实现

    2024-05-16 03:30:06       12 阅读
  4. MATLAB概述

    2024-05-16 03:30:06       13 阅读
  5. 渗透相关面试+流量分析

    2024-05-16 03:30:06       9 阅读
  6. 破解OKR落地难题:撰写阶段的陷阱与策略

    2024-05-16 03:30:06       15 阅读
  7. vscode-调试js文件

    2024-05-16 03:30:06       12 阅读
  8. lua 判断字符串是否包含子字符串(点符号查找)

    2024-05-16 03:30:06       9 阅读