类型别名和接口的区别
类型别名和接口非常相似,在很多情况下您可以在它们之间自由选择。 interface
的几乎所有功能都在 type
中可用,主要区别在于无法重新打开类型以添加新属性,而接口始终可扩展。
Type aliases and interfaces are very similar, and in many cases you can choose between them freely. Almost all features of an interface
are available in type
, the key distinction is that a type cannot be re-opened to add new properties vs an interface which is always extendable.
`Interface` nfSKSmHnwi6/kvfAd4BtUHvYDgss/Tx255jpSLTJo48= | `Type` nHXbiCNm/g4l0UM9B0FuyJNbgg0ZCdA0yf0itjsfV1g= |
---|---|
lPBbU/KgKOI2n0rMPUpvjbV7ssCWNZhV3FcpMRRGUKZ04VnbRyqvPYfiPCg0r65CF0rgpBAO0KgdwgwoSpeSIg==
| 2kUDLsOVI2k6rl7Xd7ry5Zi3/khxWKRKZw0i44tBjn7VX3IbBxgEJGfNOa1sdINz/ZIVlNk6C6KHb9gLLiI1+EHSSMO088SX0oiRXXjudLY4mZ9WQCEHoYJAvs+fT7jK
|
iFx9lKJgozY6kG+UYBHo7fc/ku53iW8NuWTLEpAVGrn8J2V62nxPmGD2lJgtNHMP87HtvyPccwJ0ZMT6VHn5uSUD4Jw1zkWJhmr5jiIvPwD48xwVkacgMQMJ5zQd8OGQ
| XytAyBp4Z+ShhrdDHMswA+wppPKgKSilp8Rbao7Dh5umCPb+OOxxjOOnJl5ecPIhT6/U+PJBOQIWsELk8XRO0uttUIa2AzkHuOJBmyawv/X+vvozAnbAqbRPbSaleSbz
|
5jTRVogKgqdP/3uPknmMV70CQtV4pCheRDEiBt3oMjvGnLxY5XA9NBOviXBr5pHqWeDeWFUPZx8f1EeW9unIRc56EX7itBmkohH9r1N9bWb6BJpR3pn42wNtPwveTmIvL0yLDhIzSf1kMknIMHH16plCYX9Uw+UyivSRcSyE6Jm+wNmSJb8tjyarkfEtK2dKMyfYxjfaY9WaT2GY1Lqe+eWP7jwGgsHtn+VnG0HHYbMPeSbbT1Fz5febgF8zo9gBZ0eoKwq6DElbt2zckvY4H/4e0JGSsyiuABY97seMWDQiFBLpYUlDPTwYFbPrTcgBU0KYYVHvcn2gOiLQa0VbrnkObrPreZCFbAXk8kxE/MGDecUzQLIaPkoMCAp4kWyY
- 在 TypeScript 4.2 版之前,类型别名 可能出现在错误消息中,有时代替等效的匿名类型(可能需要也可能不需要)。接口将始终在错误消息中命名。
AdYSvRvELV2MiNLSjGlDawzW/2E7y7cP2XJFZ+0OmH4ckZhA2nog0QYY46l2Ajozl488mkG9EWQTIEVqVuAxf8YBtlLzU48e5h5/s0olLb+LW/K/kduMqKr3FPDRz7LqinwbuFb5FvTdmNeQOmJRL3EEzKaH2wg2XV9kUoPiPEsnyJzMF7TWSOkRzrJ1xYVzeljLXC8I5TcWSzCxxciex3+1sba97R69si6RgNztmR1UcCagnDEQhJx1JftxoUyyhZ5Anu12NZuCi0NsqVqrKdOK08eRCXyUDEtdrZSfBdxvASImONhYfB4dUHhRS8HhmDDu8UjW4qAXUUN2LRvlMemKG6DV0lnHNUXih/U3Vi4n7s+lVMhCMktlTw9K8z3E
- 类型别名不得参与 在声明合并中,但接口可以。
sHS6px88cXtsJ5DGR3pz1m1XVor9Me1LqVRfy28BSwOuCEs8varjTXyovpOWLnQYndCUIIrbORlBdGI4en9AroHYl+ZR0G8esDl78oaZQkpMgXJHJYVyolZYJFTGVMAvYj4tyuCHyVLw745QWaqvhT3SGDrQMTumHtLN6rZEPwk=
- 接口只能用于 声明对象的形状,而不是重命名基元。
ZgCXvR8OJxcSkvLRXf4P+upVElP52SM4i77UcwiYerHU0J9+kT6RpkPCbAn3BUaWW7pW+LiU5qS2fkY/9HmqbRPn7XFV4z3FwXVC4a03udqbc8bNGGR2RK+XMOisop85uB0GOMHE3059gcMDPo0AE6y7/fbllvNdejXCEy4iHahGMGONH9ZKRPMLBLlY6g/b
- 接口名称将在错误消息中显示为 总是以其原始形式出现,但仅当它们被名称使用时。
oL1qMxsIRyCepvqq2rLXrVAwg9NDlB2AiM4GtnuiHZ4Cu5yRuX3M2/jIarhk+Xheg/zbdzWvbRJ68NQHKhC7z2tskkV4PLPApEDlLe/mHeYyWBsXhPLAf/O8Cs98oXwppyBXDEJdE7Z4Vh/BrrLKNZUiGmY2XD/71GxqDvrfZXmLpUK7Y8hK/+zKgvSOnAXdUDqBYE3SIJWMCBJWizbHczRptjbAaciJLlKORR6K3KRvStVWFqXHSekThtl2Wl0R
KI0oHiiDzXujC15/XLDW8tFVatx7Nu1Xx00Bi6aa3dP7I9JaJM8FdlWscKIGAUBZ3/YYCttnR6gm060eXeHNTiiCviTljePHCktd3LUDqOuXRy35H+TlYg74Z1UmEuxDsB6UxHe0yvsK7sUeiROqxB9kLhM19abFN+GPFO7EzwgXQBLtiOvhfhu6E+6TG7sdDfwWR3ul4+oiTtQPyYsdDn8oIeyyXBGHCCoxr0XH7LtSIFEfcU2ldF8WYr8mQ51rX4xo1N//ernBpUw+q2cihYbnmJw6WNlnRqtXTGHCjJVXnrQFPSTPKUMkXisfxO0f5ZPiRR+X7KG/tMO0h9/g+6wvjDuMXX32tQw1jpP0gNXZzqqH48gLhQWmGpwpKxH1Orh1//feKExRrx5/vf4oGksJjnLhh6MJFJ2uqugYNqpKVZT1warBQaH6fp9KS/9bDEAIIrf3+7WvGpHkMZhHCk0b/vNv70XRMGBkAqmOdLUgsxf6b+zGJAHEM0GIfRp0t5YcJTV6BsY0qKasB9Dts46xtl1MgAe6pTSnRaMWO3I7qU8y7guHaqW+V3mpaeaKOCEJcB/F/UBGoniIn2eBpUS39S+Aw6QTzZnEcVLDn/JvTVSmPRjbZqE7O4EWuAdiMX274Z801cgQtIoRsrF8xM3Wuc+2ZA7EtNmxXgZ+pKItjvoiLU3KABTgb+b0H9llcZ9rm19Jp6sQXpOX/OcmZw==