typescript 代码
控制台输出的结果
第一次打印的时候是个 number,但是循环的时候,怎么就变成了 string 字符串类型的呢??奇了怪了
typescript 代码
控制台输出的结果
第一次打印的时候是个 number,但是循环的时候,怎么就变成了 string 字符串类型的呢??奇了怪了
TypeScript 不会帮你转换数据类型,它只是按你声明的数据类型和一定的智能推断来检查是否存在类型错误或风险。所以你应该检查是不是程序在什么地方进行了转换,比如在使用普通对象作映射的时候,它的键只能是字符串符,其它类型也会自动转换的。
下面这段代码完全是按你的代码写的,输出完全没有问题
class Product {
id: number;
constructor(id: number) {
this.id = id;
}
}
const products = Array.from(Array(8), (x, i) => new Product(i + 10));
function getProductId(id: number): Product {
return products.find((product) => {
console.log(product.id, id);
return product.id === id;
});
}
const p = getProductId(15);
console.log(p);
下图是在 TypeScript Playground 上转译的代码直接在浏览器(Chrominum)上执行的结果:
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
一张图帮你诠释(注意:5的颜色)