TypeScript 第三节:变量声明

一、命名规则

TypeScript 变量的命名规则与 JavaScript 一致,具体如下:

  1. 变量名必须以字母、下划线或美元符号($)开头;
  2. 变量名可以包含字母、数字、下划线或美元符号($);
  3. 变量名区分大小写;
  4. 变量名不能与 TypeScript 的关键字相同(例如:let、const、class、function 等);
  5. 变量名应该具有描述性,能够清晰地表示变量的含义。

一些推荐的命名规范:

  1. 使用小写字母和驼峰命名规则(例如:firstName);
  2. 对于常量,使用全大写字母和下划线命名规则(例如:MAX_SIZE);
  3. 避免使用单个字符作为变量名(例如:x、y、i 等),除非变量的作用范围非常小。

二、4种声明变量的类型及初始值:

1、var [变量名] : [类型] = 值;

TypeScript 复制代码
var uname:string = "Runoob";

2、var [变量名] : [类型];

// 声明变量的类型,但没有初始值,变量值会设置为 undefined:

TypeScript 复制代码
var uname:string;

3、 var [变量名] = 值;

// 声明变量并初始值,但不设置类型,该变量可以是任意类型:

TypeScript 复制代码
var uname = "Runoob";

4、var [变量名];

// 声明变量没有设置类型和初始值,类型可以是任意类型,默认初始值为 undefined:

TypeScript 复制代码
var uname;

三、类型断言(Type Assertion)

TypeScript类型断言(Type Assertion)是指在编译阶段确定变量的数据类型,以确保代码的正确性。在TypeScript中,有两种类型断言的方式:尖括号语法和as语法。

1、尖括号语法

<类型>值

使用尖括号语法的类型断言,需要把待转换的变量放在尖括号内并指定类型。

typescript 复制代码
let someValue: any = "hello world";
let strLength: number = (<string>someValue).length;

2、as语法

值 as 类型

使用as语法的类型断言,需要把待转换的变量放在变量名后面,并用as操作符指定类型。

typescript 复制代码
let someValue: any = "hello world";
let strLength: number = (someValue as string).length;

注意:

在TypeScript中,as语法更加常用,因为它既可以用于类型断言,也可以用于类型别名中的类型指定。
两种形式的作用是相同的,可以根据自己喜欢的风格来使用。

需要注意的是,在使用类型断言时应该尽量避免类型转换错误,因为类型断言并不会改变变量的实际类型,而只是告诉 TypeScript 编译器以一种特定的方式解释该变量的类型。如果类型断言错误,将可能导致程序运行错误。

相关推荐
下雪天的夏风29 分钟前
TS - tsconfig.json 和 tsconfig.node.json 的关系,如何在TS 中使用 JS 不报错
前端·javascript·typescript
天下无贼!14 小时前
2024年最新版TypeScript学习笔记——泛型、接口、枚举、自定义类型等知识点
前端·javascript·vue.js·笔记·学习·typescript·html
Jorah3 天前
1. TypeScript基本语法
javascript·ubuntu·typescript
小白小白从不日白3 天前
TS axios封装
前端·typescript
aimmon4 天前
Superset二次开发之源码DependencyList.tsx 分析
前端·typescript·二次开发·bi·superset
下雪天的夏风4 天前
Vant 按需引入导致 Typescript,eslint 报错问题
前端·typescript·eslint
theMuseCatcher5 天前
Vue3+TypeScript+Vite+Less 开发 H5 项目(amfe-flexible + postcss-pxtorem)
typescript·less·postcss
Qiyandays5 天前
vue + Lodop 制作可视化设计页面 实现打印设计功能(四)
前端·vue.js·typescript
人工智能的苟富贵5 天前
微信小程序中的模块化、组件化开发:完整指南
微信小程序·小程序·typescript
Code blocks8 天前
小试牛刀-区块链Solana多签账户
算法·typescript·区块链·github