菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP How to W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

TypeScript 简单类型


TypeScript 支持一些您可能知道的简单类型(原始类型)。

JavaScript 和 TypeScript 中有三个主要的原始类型。

  • boolean - true 或 false 值
  • number - 整数和浮点数值
  • string - 文本值,例如 “TypeScript Rocks”

在 JavaScript 和 TypeScript 的后续版本中,还有 2 种不太常见的原始类型。

  • bigint - 整数和浮点数值,但允许比 number 类型更大或更小的负数和正数。
  • symbol 用于创建全局唯一标识符。

类型赋值

创建变量时,TypeScript 有两种主要的方式分配类型

  • 显式
  • 隐式

在下面的两个示例中,firstName 的类型都是 string


显式类型

显式 - 写出类型

let firstName: string = "Dylan";
自己动手试一试 »

显式类型赋值更容易阅读,也更具目的性。


隐式类型

隐式 - TypeScript 会根据赋给它的值“猜测”类型

let firstName = "Dylan";
自己动手试一试 »

注意:让 TypeScript “猜测”值的类型称为推断

隐式赋值强制 TypeScript推断该值。

隐式类型赋值更简短,输入更快,并且通常在开发和测试时使用。


w3schools CERTIFIED . 2022

获得认证!

完成 TypeScript 模块,做练习,参加考试,成为 W3Schools 认证!!

$45 报名

类型赋值错误

如果数据类型不匹配,TypeScript 会抛出错误。

示例

let firstName: string = "Dylan"; // 类型 string
firstName = 33; // 尝试将值重新分配给不同的类型
自己动手试一试 »

隐式类型赋值会使 firstName 作为 string 的性质不那么明显,但两者都会引发错误

示例

let firstName = "Dylan"; // 推断为 string 类型
firstName = 33; // 尝试将值重新分配给不同的类型
自己动手试一试 »

JavaScript不会为不匹配的类型抛出错误。


无法推断

TypeScript 可能无法始终正确推断变量的类型。在这种情况下,它会将类型设置为 any,这将禁用类型检查。

示例

// 隐式的 any,因为 JSON.parse 不知道它返回什么类型的数据,所以它可以是“任何”东西...
const json = JSON.parse("55");
// 大多数人期望 json 是一个对象,但它也可以是字符串或数字,就像这个例子一样
console.log(typeof json);
自己动手试一试 »

可以通过在 TypeScript 项目的 tsconfig.json 中将 noImplicitAny 设置为选项来禁用此行为。这是一个 JSON 配置文件,用于自定义 TypeScript 的行为。

注意:您可能会看到原始类型大写,例如 Boolean

boolean !== Boolean
在本教程中,您只需知道使用小写值即可,大写值用于非常特定的情况。


TypeScript 练习

通过练习来测试自己

练习

TypeScript 有两种主要方式分配类型



        

开始练习


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持