在C#中,我们可以通过implicit
或explicit
运算符重载来实现自定义类型转换。例如:
public class A {
public string Name {get; set;}
public static implicit operator A(B b) {
A a = new A();
a.Name = b.PhoneNumber;
return a;
}
}
这允许使用将B
强制转换为A
,类似于B b = new B(); A a = b;
有没有办法在 typescript 中做到这一点,使给定的以下类型:
class A {
name?: string | null | undefined;
}
class B {
phoneNumber?: string | null | undefined;
}
B
可以通过以下方式强制转换为A
:
const b: B = { phoneNumber: "1234" }
const a: A = (A)b
1条答案
按热度按时间9wbgstp71#
在C#中,我们可以通过隐式或显式运算符重载实现自定义类型转换
TypeScript中没有运算符重载
为什么?
因为JavaScript中没有运算符重载。TypeScript不喜欢添加JavaScript不支持的运行时特性。
备选方案
在类A中创建静态方法
PS:我更喜欢静态函数而不是运算符重载,即使JavaScript支持它😄