Javascript typescript对象强制转换的工作原理

Javascript typescript对象强制转换的工作原理,javascript,json,typescript,Javascript,Json,Typescript,我定义了一个类,如下所示: class Foo { p1: string; p2: string; a_method(): string{ return p1+p2; } }; 我有一个服务返回与Foo相对应的JSON对象 var foo: Foo= <Foo> restService.getOne(1); 我的理解是,当JSON转换为javascript时,它不应该附加任何方法。除非typescript在强制转换时执行某些操作,否则上面的代码不应该工作

我定义了一个类,如下所示:

class Foo {
  p1: string;
  p2: string;
  a_method(): string{
    return p1+p2;
  }
};
我有一个服务返回与
Foo
相对应的JSON对象

var foo: Foo= <Foo> restService.getOne(1);
我的理解是,当JSON转换为javascript时,它不应该附加任何方法。除非typescript在强制转换时执行某些操作,否则上面的代码不应该工作


另外,我想知道在javascript中,我应该如何实现这个
cast

理想情况下,您的服务不会/不应该返回任何具有行为的对象,通常服务json对象用于数据对象

假设您应该有另一个对象来包含行为,并且数据对象将只包含将从服务返回的数据成员


除此之外,还有一个返回类型jsonp,它本身就是从服务返回的函数,如果您怀疑它不起作用,那么您可能会对此感兴趣。TypeScript不执行类型转换,它执行类型断言,也就是说,你告诉编译器这就是我说的对象,忘记你之前推断的。当您使用类型断言时,生成的javascript没有变化


至于推荐的方法:创建一个typescript类,该类接受DTO作为构造函数参数,并使用DTO填充自身。

这将在javascript方面做更多解释:
foo.a_method();