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 编译器以一种特定的方式解释该变量的类型。如果类型断言错误,将可能导致程序运行错误。

相关推荐
Dragon Wu7 小时前
Electron Forge集成React Typescript完整步骤
前端·javascript·react.js·typescript·electron·reactjs
We་ct1 天前
LeetCode 56. 合并区间:区间重叠问题的核心解法与代码解析
前端·算法·leetcode·typescript
程序猿阿伟1 天前
《TypeScript中Protobuf到运行时类型安全的转换指南》
javascript·安全·typescript
We་ct1 天前
LeetCode 228. 汇总区间:解题思路+代码详解
前端·算法·leetcode·typescript
阿蒙Amon2 天前
TypeScript学习-第10章:模块与命名空间
学习·ubuntu·typescript
VT.馒头2 天前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript
AAA阿giao2 天前
从零拆解一个 React + TypeScript 的 TodoList:模块化、数据流与工程实践
前端·react.js·ui·typescript·前端框架
hedley(●'◡'●)2 天前
基于cesium和vue的大疆司空模仿程序
前端·javascript·vue.js·python·typescript·无人机
百锦再2 天前
Vue高阶知识:利用 defineModel 特性开发搜索组件组合
前端·vue.js·学习·flutter·typescript·前端框架
小杨同学呀呀呀呀2 天前
Ant Design Vue <a-timeline>时间轴组件失效解决方案
前端·javascript·vue.js·typescript·anti-design-vue