当类型转换时,如何获得预期的结果以及限制属性的最佳方法是什么?
interface user {
name: string
password: string
}
interface userEntity {
name: string
}
const user: user = {
name: 'name',
password: 'password'
}
const result = user as userEntity;
// output { name: 'name', password: 'password' }
// expected { name: 'name' }
答案 0 :(得分:1)
类型转换在运行时不起作用,对象中的值将保持不变。类型转换的唯一目的是在检查类型时(当您比编译器更了解对象的实际类型时)抑制编译错误。
要在将值分配给另一个对象时仅复制属性的子集,则必须在运行时显式地进行操作。例如,有一个multitude of possible ways to do that
const result: userEntity = {name: user.name};