TypeScript一些常见的类型申明语法写法

TypeScript 的类型声明语法主要用于指定变量、函数参数、函数返回值等的类型。这些语法形式帮助 TypeScript 提供静态类型检查和编辑器支持,从而增强代码的可读性和可维护性。下面是一些常见的类型声明语法写法:

变量和常量类型声明

typescript 复制代码
let variableName: Type;
const constantName: Type = value;

函数参数类型声明

typescript 复制代码
function functionName(parameterName: Type): ReturnType {
    // 函数体
}

函数返回类型声明

在函数参数列表之后使用 : 后跟类型来声明函数的返回类型。

typescript 复制代码
function functionName(parameterName: Type): ReturnType {
    // 函数体
}

接口声明

接口(Interfaces)用于定义对象的结构。

typescript 复制代码
interface InterfaceName {
    propertyName: Type;
    optionalPropertyName?: Type;
}

类型别名声明

类型别名(Type Aliases)允许给一个类型起一个新名字。

typescript 复制代码
type TypeName = Type;

泛型声明

泛型(Generics)允许在定义函数、接口或类的时候不预先指定具体的类型,而在使用的时候再指定类型的一种特性。

typescript 复制代码
function functionName<T>(arg: T): T {
    // 函数体
}

interface InterfaceName<T> {
    // 接口定义
}

class ClassName<T> {
    // 类定义
}

枚举声明

枚举(Enums)用于定义一组命名的常数。

typescript 复制代码
enum EnumName {
    FirstValue,
    SecondValue,
    // etc.
}

元组声明

元组(Tuples)用于表示一个已知元素数量和类型的数组,各元素的类型不必相同。

typescript 复制代码
let tupleName: [Type1, Type2] = [value1, value2];

联合类型和交叉类型声明

联合类型(Union Types)允许一个值是几种类型之一,交叉类型(Intersection Types)则是将多个类型合并为一个类型。

typescript 复制代码
let unionVariable: Type1 | Type2;
let intersectionVariable: Type1 & Type2;

类型断言

类型断言(Type Assertions)用于告诉编译器,开发者已经知道了关于变量的类型信息。有两种语法:

typescript 复制代码
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length; // 尖括号语法
let strLengthAs: number = (someValue as string).length; // as语法

映射类型声明

映射类型(Mapped Types)通过现有的类型创建新类型的方式,它可以遍历现有类型的属性。

typescript 复制代码
type Readonly<T> = { readonly [P in keyof T]: T[P]; }

条件类型声明

条件类型(Conditional Types)根据条件选择类型。

typescript 复制代码
type NonNullable<T> = T extends null | undefined ? never : T;

这些是 TypeScript 中常用的类型声明语法写法,通过这些语法,开发者可以在编写 TypeScript 代码时明确指定变量、参数、返回值等的类型,以利用 TypeScript 提供的静态类型检查和其他特性。

相关推荐
叫我阿柒啊8 小时前
从Java全栈到前端框架:一次真实面试的深度复盘
java·spring boot·typescript·vue·database·testing·microservices
烛阴11 小时前
【TS 设计模式完全指南】用工厂方法模式打造你的“对象生产线”
javascript·设计模式·typescript
定栓11 小时前
Typescript入门-类型断言讲解
前端·javascript·typescript
Thetimezipsby14 小时前
基于Taro4打造的一款最新版微信小程序、H5的多端开发简单模板
前端·javascript·微信小程序·typescript·html5·taro
流影ng15 小时前
【TypeScript】闭包
typescript
葡萄城技术团队16 小时前
TypeScript 队列实战:从零实现简单、循环、双端、优先队列,附完整测试代码
typescript
烛阴1 天前
【TS 设计模式完全指南】从“入门”到“劝退”,彻底搞懂单例模式
javascript·设计模式·typescript
lypzcgf1 天前
Coze源码分析-资源库-删除插件-前端源码-核心组件实现
前端·typescript·前端框架·react·coze·coze插件·智能体平台
江拥羡橙2 天前
【目录-单选】鸿蒙HarmonyOS开发者基础
前端·ui·华为·typescript·harmonyos
叫我阿柒啊2 天前
从Java全栈到Vue3实战:一次真实面试中的技术探索
java·数据库·spring boot·微服务·typescript·vue3·restful