❯ node test.ts a_instance is A { a: 0 } b_instance is A { a: 0 } /home/yttehs/test.ts:28 b_instance.doSomething(); ^
TypeError: b_instance.doSomething is not a function at test (/home/yttehs/test.ts:28:13) at Object.<anonymous> (/home/yttehs/test.ts:31:1) at Module._compile (node:internal/modules/cjs/loader:1738:14) at Object..js (node:internal/modules/cjs/loader:1871:10) at Module.load (node:internal/modules/cjs/loader:1470:32) at Module._load (node:internal/modules/cjs/loader:1290:12) at TracingChannel.traceSync (node:diagnostics_channel:322:14) at wrapModuleLoad (node:internal/modules/cjs/loader:238:24) at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5) at node:internal/main/run_main_module:33:47
Node.js v24.7.0
因此,在项目开发中,尽可能不使用 as 关键字,这可能会产生潜在的问题,然而语法检查却始终 happy。