TypeScript - Any 类型
any
类型是 TypeScript 中一种特殊的类型,它可以代表任何值。当你不确定变量的类型或者变量的类型尚未 定义时,可以使用 any
类型。any
类型在将 JavaScript 代码转换为 TypeScript 时特别有用。
任何值的占位符
声明为 any
类型的变量可以存储任何数据类型的值。
let x: any;
x = "Hello";
x = 23;
x = true;
这里,变量 x
被声明为 any
类型。这允许我们给变量分配任何值,如字符串、数字、布尔值等。
使用 typeof
操作符检查 any
类型变量的类型时,结果将是 undefined
。
let x: any;
console.log(typeof x); // undefined
编译后生成的 JavaScript 代码:
let x;
console.log(typeof x);
输出结果:
undefined
让我们通过以下 TypeScript 示例来理解 any
类型:
let x: any;
console.log(typeof x); // undefined
x = "Hello";
console.log(typeof x); // string
x = 23;
console.log(typeof x); // number
x = true;
console.log(typeof x); // boolean
在这个示例中,变量 x
被声明为 any
类型。然后我们给它分配了不同类型的值(字符串、数字和布尔值)。
编译后生成的 JavaScript 代码:
let x;
console.log(typeof x);
x = "Hello";
console.log(typeof x);
x = 23;
console.log(typeof x);
x = true;
console.log(typeof x);
输出结果:
undefined
string
number
boolean
任何类型的函数参数
你也可以定义一个函数,使其参数为 any
类型。
function func(para: any) {
}
这里,函数 func
可以接受任何类型的参数(数字、字符串、布尔值等)。
让我们来看一个示例:
function greet(name: any): string {
return `Hello Mr. ${name}`;
}
console.log(greet('Shahid'));
console.log(greet(123));
函数 greet
被定义为接受 any
类型的参数。因此,它可以接受任何类型的参数(数字、字符串等)。
我们调用了 greet
函数,传递了两个不同类型的值(字符串和数字)。你可以注意到,它对这两种类型的参数都有效。
编译后生成的 JavaScript 代码:
function greet(name) {
return `Hello Mr. ${name}`;
}
console.log(greet('Shahid'));
console.log(greet(123));
输出结果:
Hello Mr. Shahid
Hello Mr. 123
任何类型的对象
你也可以定义一个 any
类型的对象。这样的对象可以具有任何类型的属性。
const student: any = {
name: "John Doe",
age: 32,
isEnrolled: true,
};
这里,student
对象被声明为 any
类型。它包含三个不同类型的属性。
尝试以下示例:
const student: any = {
name: "John Doe",
age: 32,
isEnrolled: true,
};
console.log(student.name);
console.log(student.age);
console.log(student.isEnrolled);
编译后生成的 JavaScript 代码:
const student = {
name: "John Doe",
age: 32,
isEnrolled: true,
};
console.log(student.name);
console.log(student.age);
console.log(student.isEnrolled);
输出结果:
John Doe
32
true