TS类型的any unknown
时间: 2024-01-04 07:04:08 浏览: 138
在 TypeScript 中,"any" 和 "unknown" 都是顶级类型。它们都能够表示任何类型的值,但它们的使用方式和行为有所不同。
"any" 类型表示一个值可以是任何类型,编译器不会对它进行类型检查或类型推导。使用 "any" 类型会失去 TypeScript 的类型检查和类型安全性,因此应该尽量避免使用它。
"unknown" 类型表示一个值可以是任何类型,但是我们不知道它的确切类型。与 "any" 类型不同,"unknown" 类型必须经过类型检查或类型断言才能被使用。这可以帮助我们避免在代码中出现潜在的类型错误。
下面是一个使用 "unknown" 类型的示例:
```
function printValue(value: unknown) {
if (typeof value === 'string') {
console.log(value.toUpperCase());
} else if (typeof value === 'number') {
console.log(value.toFixed(2));
} else {
console.log(value);
}
}
printValue('hello'); // 输出: HELLO
printValue(3.14159); // 输出: 3.14
printValue(true); // 输出: true
```
在上述示例中,"printValue" 函数接收一个参数 "value",它的类型为 "unknown"。在函数内部,我们使用了类型检查来确定 "value" 的确切类型,并相应地处理它。这样做可以在运行时通过类型检查来保证代码的类型安全性。
阅读全文