TypeScript 简单类型


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

JavaScript 和 TypeScript 中有三种主要原语。

  • boolean- 真值或假值
  • number- 整数和浮点值
  • string- 文本值,例如 "TypeScript Rocks"

在 Javascript 和 TypeScript 的更高版本中还使用了 2 个不太常见的原语。

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

类型分配

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

  • 显式的
  • 隐含的

在下面的两个例子中firstName属于类型string


显式类型

显式的- 写出类型:

let firstName: string = "Dylan";
亲自试一试 »

显式的类型分配更容易阅读并且更有目的性。


隐式类型

隐含的- TypeScript 将根据分配的值 "guess" 类型:

let firstName = "Dylan";
亲自试一试 »

笔记:使用 TypeScript "guess" 调用值的类型推断

隐式赋值迫使 TypeScript推断值。

隐含的类型分配更短,输入速度更快,并且在开发和测试时经常使用。



类型分配错误

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

示例

let firstName: string = "Dylan"; // type string
firstName = 33; // attempts to re-assign the value to a different type
亲自试一试 »

隐含的类型分配会使得firstName作为一个不太引人注目的string,但是两者都会抛出错误:

示例

let firstName = "Dylan"; // inferred to type string
firstName = 33; // attempts to re-assign the value to a different type
亲自试一试 »

JavaScript将要不是对于不匹配的类型抛出错误。


无法推断

TypeScript 可能并不总是正确推断变量的类型。在这种情况下,它将类型设置为any这会禁用类型检查。

示例

// Implicit any as JSON.parse doesn't know what type of data it returns so it can be "any" thing...
const json = JSON.parse("55");
// Most expect json to be an object, but it can be a string or a number like this example
console.log(typeof json);
亲自试一试 »

可以通过启用来禁用此行为noImplicitAny作为 TypeScript 项目中的一个选项tsconfig.json。这是一个 JSON 配置文件,用于自定义某些 TypeScript 的行为方式。

笔记:您可能会看到大写的原始类型,例如Boolean

boolean !== Boolean
对于本教程,只需知道使用小写值,大写值适用于非常特殊的情况。


TypeScript 练习

通过练习测试一下

练习:

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



        

开始练习