类型转换(打字稿)时如何限制属性

时间:2019-03-24 17:15:22

标签: typescript type-conversion

当类型转换时,如何获得预期的结果以及限制属性的最佳方法是什么?

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' }

1 个答案:

答案 0 :(得分:1)

类型转换在运行时不起作用,对象中的值将保持不变。类型转换的唯一目的是在检查类型时(当您比编译器更了解对象的实际类型时)抑制编译错误。

要在将值分配给另一个对象时仅复制属性的子集,则必须在运行时显式地进行操作。例如,有一个multitude of possible ways to do that

const result: userEntity = {name: user.name};