three.js is a JavaScript-based library. However, it's possible to use it in a TypeScript project, as the library exposes [link:https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html Declaration Files] (*d.ts* files).
A minimal configuration is required for the TypeScript compiler to
discover three.js types.
You will need to set the [link:https://www.typescriptlang.org/docs/handbook/module-resolution.html moduleResolution]
option to *node*, and the [link:https://www.typescriptlang.org/docs/handbook/compiler-options.html target] option to *es6* or newer.
// Example of minimal `tsconfig.json` file
{
"compilerOptions": {
"target": "es6",
"moduleResolution": "node",
},
"include": [ "./src/**/*.ts" ],
}
Note: As of today, it's not yet possible to use three.js typings without using those two options.
Note: It happens that some declarations are incorrect and/or missing. Contributing to Declaration Files is really helpful for the community, making three.js typings better and more accurate.