TypeScript 类型推断

TypeScript 类型推断

在TypeScript中,不必总是注释类型。当没有显示的类型注释可用时,TypeScript编译器会推断类型信息。

在TypeScript中,TypeScript编译器在以下情况下推断类型信息:

  • 变量和成员初始化
  • 为参数设置默认值
  • 确定函数返回类型

例如

let x = 3;

在上面,变量”x”的类型推断为一个数字。类型推断发生在初始化变量和成员、设置参数默认值和确定函数返回类型时。

让我们再举一个示例。

var x = "JavaTpoint";
var y = 501;
x = y; // Compile-time Error: Type 'number' is not assignable to type 'string'

在上面的示例中,我们会得到一个错误,因为在推断类型时,TypeScript将变量”x”的类型推断为字符串,变量”y”的类型推断为数字。当我们尝试将y分配给x时,编译器会生成一个错误,指出数字类型不能赋值给字符串类型。

最佳公共类型:类型推断

类型推断在没有显式类型注释可用时的类型检查中非常有用。在类型推断中,可能出现对象可以用多种类型进行初始化的情况。

例如

let arr = [ 10, 20, null, 40 ];

在上面的示例中,我们有一个包含值10、20、null和30的数组。在这里,我们给出了两种类型的选择:number和null。最佳公共类型算法选择与所有类型兼容的类型,即number和null。

让我们来看另一个示例。

let arr2 = [ 10, 20, "JavaTpoint" ];

在上面的示例中,数组包含了数字和字符串类型的值。现在,TypeScript编译器使用了最常见的类型算法,并选择了与所有类型兼容的类型。在这种情况下,编译器将该类型视为数组中所有类型的联合类型。这里,类型将是(string或number),这意味着数组可以容纳字符串值或数值。

函数的返回类型也可以通过返回值进行推断。例如:

function sum(x: number, y: number )
{
    return x + y;    
}
let Addition: number = sum(10,20); // Correct
let str: string = sum(10,20); // Compiler Error 

在上面的示例中,函数 sum 的返回类型是 number 。因此,其结果将被存储在一个数字类型的变量中,而不是字符串类型的变量。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程