您的位置:首页 > 文旅 > 旅游 > 鞍山一般做一个网站需要多少钱_无锡房地产开发公司_搜索引擎优化排名工具_百度推广开户

鞍山一般做一个网站需要多少钱_无锡房地产开发公司_搜索引擎优化排名工具_百度推广开户

2024/12/26 22:06:04 来源:https://blog.csdn.net/m0_50892002/article/details/144154695  浏览:    关键词:鞍山一般做一个网站需要多少钱_无锡房地产开发公司_搜索引擎优化排名工具_百度推广开户
鞍山一般做一个网站需要多少钱_无锡房地产开发公司_搜索引擎优化排名工具_百度推广开户

一、TypeScript 是什么

TypeScript 是一种由微软开发的开源编程语言,它在 JavaScript 的基础上添加了静态类型检查。这意味着我们可以在编写代码时指定变量、函数参数、函数返回值等的类型,编译器会在编译阶段对代码进行类型检查,提前发现潜在的类型错误,而不是像 JavaScript 那样在运行时才暴露问题。

例如,在 JavaScript 中我们可以这样写代码:

let num = 5;
num = "hello"; // 这样的赋值在 JavaScript 中是合法的,但可能会导致意外的行为

而在 TypeScript 中,我们可以明确指定 num 的类型为 number,这样上述错误的赋值在编译阶段就会被捕获:

let num: number = 5;
num = "hello"; // 编译错误:不能将类型 "string" 分配给类型 "number"

二、环境搭建

要开始使用 TypeScript,首先需要安装 Node.js,因为 TypeScript 编译器 tsc 是基于 Node.js 运行的。

安装完成 Node.js 后,通过命令行使用 npm(Node 包管理器)全局安装 TypeScript:

npm install -g typescript

安装成功后,就可以在命令行中使用 tsc 命令来编译 TypeScript 文件了。

三、基本数据类型

TypeScript 包含了 JavaScript 的所有基本数据类型,并为它们添加了类型标注。

  1. 数字类型(number):包括整数和浮点数。
let age: number = 25;
let price: number = 9.99;
  1. 字符串类型(string):用单引号或双引号括起来的字符序列。
let name: string = "John";
let message: string = 'Hello, World!';
  1. 布尔类型(boolean):只有 truefalse 两个值。
let isActive: boolean = true;
let isCompleted: boolean = false;
  1. 数组类型(Array):可以指定数组中元素的类型。
let numbers: number[] = [1, 2, 3, 4, 5];
let names: string[] = ["Alice", "Bob", "Charlie"];

也可以使用泛型数组类型 Array<>

let fruits: Array<string> = ["apple", "banana", "cherry"];
  1. 元组类型(Tuple):表示已知元素数量和类型的数组,每个位置的元素类型是固定的。
let person: [string, number] = ["Tom", 30];
  1. 枚举类型(Enum):用于定义一组命名常量。
enum Color {Red,Green,Blue
}
let myColor: Color = Color.Green;
  1. 任意类型(any):当我们不确定某个变量的类型或者希望它可以是任意类型时,可以使用 any。但应尽量避免过度使用,因为这会削弱 TypeScript 的类型检查优势。
let something: any = "Hello";
something = 123;

四、变量声明

在 TypeScript 中,使用 letconst 来声明变量,与 JavaScript 类似,但具有类型推断和更严格的作用域规则。

  1. let 声明:变量可以重新赋值,但具有块级作用域。
let x: number = 10;
x = 20; // 合法
  1. const 声明:变量一旦赋值就不能再重新赋值,也具有块级作用域,常用于声明常量。
const PI: number = 3.14159;
// PI = 3.14; // 编译错误:无法为 "PI" 赋值,因为它是常量

五、函数

TypeScript 中的函数可以指定参数类型和返回值类型。

  1. 普通函数
function add(a: number, b: number): number {return a + b;
}
let result: number = add(5, 3);
  1. 箭头函数
let multiply = (a: number, b: number): number => a * b;
  1. 可选参数:函数参数可以标记为可选的,使用 ? 符号。
function greet(name?: string): void {if (name) {console.log(`Hello, ${name}!`);} else {console.log("Hello, stranger!");}
}
greet(); // 输出:Hello, stranger!
greet("John"); // 输出:Hello, John!
  1. 默认参数:可以为函数参数指定默认值。
function power(base: number, exponent: number = 2): number {return Math.pow(base, exponent);
}
console.log(power(3)); // 输出:9

六、接口

接口用于定义对象的形状,描述对象应该具有哪些属性和方法。

interface Person {name: string;age: number;sayHello(): void;
}let john: Person = {name: "John",age: 35,sayHello() {console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);}
};

接口可以继承其他接口,实现代码的复用和扩展:

interface Employee extends Person {jobTitle: string;
}let jane: Employee = {name: "Jane",age: 28,jobTitle: "Developer",sayHello() {console.log(`Hi, I'm ${this.name}, a ${this.jobTitle}.`);}
};

七、类

TypeScript 支持面向对象编程的类和继承。

  1. 类的定义
class Animal {name: string;constructor(name: string) {this.name = name;}makeSound(): void {console.log("Some generic animal sound");}
}
  1. 类的继承
class Dog extends Animal {constructor(name: string) {super(name);}makeSound(): void {console.log("Woof! Woof!");}
}let myDog: Dog = new Dog("Buddy");
myDog.makeSound(); // 输出:Woof! Woof!

类中还可以包含访问修饰符,如 public(默认,可在任何地方访问)、private(只能在类内部访问)和 protected(在类内部和子类中可访问),用于控制成员的访问权限。

八、模块

TypeScript 支持模块化编程,有助于组织和管理代码。

例如,我们可以创建一个名为 math.ts 的模块:

export function add(a: number, b: number): number {return a + b;
}export function subtract(a: number, b: number): number {return a - b;
}

在其他文件中,可以导入并使用这个模块:

import { add, subtract } from './math';console.log(add(5, 3)); // 输出:8
console.log(subtract(10, 4)); // 输出:6

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com