Language Support
TypeScript
Cocos Creator 3D uses babel instead of tsc to compile TypeScript scripts. In particular, the @babel/plugin-transform-typescript plugin is used. For this reason, TypeScript support has certain limitations.
Some important considerations are listed below. For a complete description, see @babel/plugin-transform-typescript.
tsconfig.json
will not be read.- Implied with
isolatedModules
option, which means:- Const enums is not supported.
- TypeScript types and interfaces should not be exported in the export declaration.
Export =
andimport =
are not supported.- Variables exported by namespace must be declared as
const
instead ofvar
orlet
. - Different declarations in the same namespace will not share the scope and require explicit use of qualifiers.
tsconfig.json
will not be read during compilation means that the compilation options in tsconfig.json
does not affect compilation.
However, there are exceptions, please refer to the Module Analysis documentation.
Developers can still use tsconfig.json
in the project to cooperate with the IDE to implement type checking and other functions.
In-order to make the IDE’s TypeScript checking function compatible with Cocos Creator 3D's behavior, pay extra attention to some things, please referto the tsconfig documentation.
Module Analysis
Cocos Creator 3D uses the NodeJS module analysis algorithm.
It is equivalent to the following tsconfig.json
:
{"compilerOptions": {
"moduleResolution": "node"
}}
Typescript's path mapping function is also supported. The following tsconfig.json
options will be read and retain the same semantics as tsc
: