类型兼容性
TypeScript 中的类型兼容性基于结构子类型。结构类型是一种仅基于其成员关联类型的方法。这与名义类型相反。考虑以下代码:
Type compatibility in TypeScript is based on structural subtyping. Structural typing is a way of relating types based solely on their members. This is in contrast with nominal typing. Consider the following code:
interface Pet {
name: string;
}
class Dog {
name: string;
}
let pet: Pet;
// OK, because of structural typing
pet = new Dog();
Llws29/tqGVMHpn7X+OZa+Hxrrb+4vpfT6MsMlpIvIPzEKrHUTUbaQJuTSdQxeG2jzmOYgM1uuh0xiPNn9Gb35wXW9pjlNAKJsVFJ0wd4geZkiAlpyW85bjyDMy+oWu5CiYIThKM3HVM9yBUp/Ti32LxDrtju55ierSmlcevAcfDyyY1s2ZU9Aoo32vxH8IoF3FoXAPcNzWYX7NEyxVcgryOY7+SF3uhAKH+V1Zd4oXHlaFltRoAyPoNtVc+oPAu6imnR+0jeX2ycHKRqcokDgRG81wA9sRtaVkBpBPidJVUXv6dXc1cgTVQHKFdYo9cfcKBGvrYw/nzwlnrEg6YkhFJFHVzp2p9LfpINHMayXHiM6pSFFKPIf42jxrpD58uJ/U9nujgVlSzrOaw9sSa1HN76TxcPVZfaRElE8q/0msxEcYDX4m+jfccqgzL02pOSS6n3Zw/2w9p3UTDiDFsdwR7kHOQgo/S3kP4hJrQHilkc0U69P99vK79vz+x+jY7M2s2idSm4p0pwvssjCXMGxgOidLs2GClbQ469LBo8DM=
V/mnMTZFHFv/+1l85FDyG4KGNMn0ncIE7s9rw+X6uMdJXRrQQzLwAinDdHFWLNII7IMcWYgggF+OLNEdD9wFckyvr2yBg0sfko5d4SdItAccPFdBC/o3Fh0g0A+G+ADZlid6i2PtceaKlUKQvzhJbDjbyzVNh+xaUOW+wDt4yjZ9t+hZAN0jvOf0cDty9KW3qTqm0Cwwfc62IAs3yXy3h+5PLcjr94Vj9+2JM5ueOYNI3Kt6c1DYSWrm9AdkfNa+ybuoOi+qprlafL5BsNlz0eLCn1UM4SpJBrWvxtQ2hTX1oIcOBdj5Zq1G7mc+0BjVKzzJE5A/i9l1mP86dqhakCNymPu0Q7iA70tPmx8eG0XUN0I0qudR3f8kY2N+AevlH6ix2zUseiZ+iEp53rhly19yRTiCwg4bTcyJfase7eZyUOjtCLacjuxgy6IbBrbRMKOCaOVzBIBJocHpv/xeUJ1WbfE6X2YrVuIJOvDFWyuQ5BZ5niktQBdWi3lPBrJw9/EE+7k+e0+7ZMXKFKGetbLXi+/QXsBdwqVcRdw8yvIkpoaP7dAttJGKwIf02FtRLWrw4SgpqV1GHCCy0V9iBkqleVK5WozOovAl3EIX9rXh0g1QhGSNXtHsidotTZixk0RQ40I5a0k91L26K2aPpf0XIScjDtVr55d46HuazVmXXhqcfjZvB0HK1cnB/rOhC2peXsJkJNkKO7BqBuyo2xh6A/IKj7LiMBdlraHjauN8dlxEraGVtFzJ1iE4awaNwzNEwJxTaLgApEVMTZMk7UTPZIMN9yqac2hRqf+kvL8zR1BD3wAJzEq+cuepyiPx/HYjvKGbWKISXDWvWCfYU3GeJ98tGN0sh7PtfRxeH5Zxw6JapFwr7IYNIo6l3ZsFZgyJEOwMPMXjcHzXFCkepA==