Typescript 我可以用类映射简单对象的换行吗?
我希望将一个对象映射到一个类,也许我的技术措辞是错误的,所以我将尝试举例说明Typescript 我可以用类映射简单对象的换行吗?,typescript,Typescript,我希望将一个对象映射到一个类,也许我的技术措辞是错误的,所以我将尝试举例说明 var car = {wheels:4, color:"red", maxSpeed: 100} class Car(){ wheels: number; color: string; maxSpeed: number } let wrappedCar = new Car(**car) console.log(wrappedCar.wheels) // 4 在Typescript中实现这一
var car = {wheels:4, color:"red", maxSpeed: 100}
class Car(){
wheels: number;
color: string;
maxSpeed: number
}
let wrappedCar = new Car(**car)
console.log(wrappedCar.wheels)
// 4
在Typescript中实现这一点的最佳方法是什么?:) 这对你合适吗
var car = { wheels: 4, color: "red", maxSpeed: 100 }
class Car {
wheels: number;
color: string;
maxSpeed: number
}
let wrappedCar = <Car> car
console.log(wrappedCar.wheels)
如果您只需要描述对象结构,则可以使用界面 应该是这样的
接口车{
轮子:数量;
颜色:字符串;
maxSpeed:数字
}
你以后可以正常使用它
出租汽车:汽车={
车轮:4,
颜色:“红色”,
最高速度:100
}
编译器还将自动识别对象是否实现了该接口。所以你可以用它来描述你希望在你的方法中得到什么
功能清洗车(车:车):无效{
洗车({
车轮:10,
颜色:“红色”,
最高速度:100
}); // 行得通
洗车({
姓名:'约翰',
年龄:5
}); // 将生成编译错误
谢谢你的回答!这叫做类型转换吗?您认为在执行强制转换时可以运行一些代码吗?是的,这是类型强制转换,但请记住,它不会有任何您在类中定义的、不在objectAh中的其他内容,这意味着函数也将丢失!我做对了吗?是的,我使用构造函数添加了一个选项。这将起作用,但为什么要创建两个对象?只需使用签名构造函数(轮子、颜色、最大速度)
。
var car = { wheels: 4, color: "red", maxSpeed: 100 }
class Car {
wheels: number;
color: string;
maxSpeed: number
constructor(carObj) {
for (var a in carObj) { this[a] = carObj[a] }
}
}
let wrappedCar = new Car(car)
console.log(wrappedCar.wheels)