ts自己能推断出obj的键值有a和b, 但是为什么一到for循环中就不知道了呢?
在这里他只能推断出键值是string
, 为什么不是'a'|'b', 请问ts这么设计是出于哪些情况下的考虑呢?
提问的原因在这里
ts自己能推断出obj的键值有a和b, 但是为什么一到for循环中就不知道了呢?
在这里他只能推断出键值是string
, 为什么不是'a'|'b', 请问ts这么设计是出于哪些情况下的考虑呢?
提问的原因在这里
我的解决方案如下
interface MyProps {
a: string;
b: string
}
const obj:MyProps = {
a: '1',
b: '2'
}
for (let i in obj) {
console.log(obj[i as keyof MyProps])
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
不然呢?对象的键就是
string
类型啊?你是想让它推断成'a' | 'b'
吗?