Typescript:类型
GenAI LIVE! | 2025年6月4日
在本文中,我们将学习如何使用 TypeScript 来确保变量类型安全,并且其他值无法操纵该变量。例如:字符串值不能赋值给数值变量。
这将是一系列完整的打字稿,您将从字符串、布尔值等基本主题学习到类型别名、枚举、接口、泛型等更复杂的主题。
目录
Typescript 中的类型
- 数字
- 细绳
- 布尔值
- 无效的
- 不明确的
- 空白
- 目的
- 大批
- 元组
- 未知
- 绝不
- 任何(不应使用)
等等。
使用 Typescript 的情况
例如,有一个函数increaseScore
,它获取currentScore
分数并将其增加数字increaseBy
并返回更新后的分数。
function increaseScore(currentScore, increaseBy){
return currentScore + increaseBy;
}
increaseScore(10, 2) // output : 12
increaseScore(10, "2") // output : 102
如果有人传递了字符串或其他内容,那么它会在生产或运行时抛出错误。例如在第二个例子中,分数变成了102
如图所示的“这是一个 bug”。
那么,如何使用 TypeScript 来避免这种情况呢?稍后我们会深入探讨。你可以像这样定义变量的类型:
let variableName: type = value;
原始类型
JavaScript 中的原始类型是:
string
boolean
number
细绳
字符串值由单引号或双引号括起来。它们用于存储文本数据。
let player: string = "John";
// ✅ CORRECT
player = "anny";
// ❌ ERROR: Type 'number' is not assignable to type 'string
player = 4;
如你所见,我们在第 3 行赋值了名字 (Anny),在第 4 行赋值了数字,结果立即抛出了错误。这就是 TypeScript 的本质。你不需要像 JS 那样运行 TS 来获取错误信息。
布尔值
在布尔值中,它可以是任意一个true
,否则false
,它会抛出一个错误,如下面的代码所示-
let isLoggedIn: boolean = false;
// ✅ CORRECT
isLoggedIn = true;
// ❌ ERROR: Type 'number' is not assignable to type 'boolean'
isLoggedIn = 5;
// ❌ ERROR: Type 'string' is not assignable to type 'boolean'.
isLoggedIn = "hello";
数字
JavaScript 没有整数的特殊运行时值,因此没有等效于int
或float
- 一切都很简单,number
这就是为什么line 5
当我们将分配price
给500.53
它时不会给你一个错误,因为它是一个数字。
let price: number = 200;
// 👇✅ CORRECT
price = 300;
price = 500.53;
// 👇❌ Error
price = false;
price = "3000";
不要使用“any”
那么问题来了:为什么不应该使用any
?答案很简单,因为使用any
会禁用该变量的所有类型检查,任何人都可以为该变量赋任何类型的值。例如:
// 👇 Wrong Practice (by default 'any')
let hello;
// 👇 'hello' can take any type of value
hello = 2;
hello = "world";
hello = true;
我们还line: 1
没有定义变量的类型,hello
所以它的默认值是any
,您可以分配任何您想要的内容,如上例所示。
现在想象一下这样的场景:你正在调用一个 API 并获取格式正确的数据string
,但有人将其更改为某种格式boolean
,或者number
你的整个应用程序功能会因为这个错误而崩溃。而 Typescript 可以防止这种情况发生。例如:
let data; // type by default is any
function getData(){
//.........API Call
return "Message";
}
data = getData(); // no issue because expected string
另一个例子:
let data;
function getData(){
//.........API Call
return 823;
}
data = getData(); // ISSUE: expected string but returns the number (won't throw error because type is `any`)
解决方案:
let data: string;
function getData(){
//.........API Call
return "Message";
}
data = getData();
现在,如果您传递非字符串的内容,它将引发错误,如下所示:
let data: string;
function getData(){
//........API Call
return true;
}
// ❌ ERROR: Type 'boolean' is not assignable to type 'string'
data = getData();
any
当您不希望某个特定值导致类型检查错误时,您可以使用它。我将在本系列的后面部分介绍
void
以及never
其他内容。
总结
在本文中,我解释了如何使用 typescript 来确保变量类型是安全的并且没有其他值可以操纵该变量。
这是一系列 TypeScript 教程,旨在帮助你从零开始学习 TypeScript。如果你喜欢这篇文章,别忘了点赞 ❤️ 并收藏 🏷️ 以便日后使用。如果你有任何问题或反馈,欢迎在下方评论区留言。下篇文章见。
与我联系
鏂囩珷鏉ユ簮锛�https://dev.to/j471n/typescript-types-g4b