This package defines Typescript types (.d.ts) for the upcoming WebGPU standard.
Use this package to augment the ambient "dom" type definitions with the new definitions for WebGPU.
This repo also generates typedoc docs here: https://gpuweb.github.io/types
See the TypeScript handbook.
npm install --save @webgpu/typesyarn add @webgpu/typesIf you are on TypeScript < 5.1, you will also need to install @types/dom-webcodecs
as a sibling dependency. The version you need depends on the TypeScript version;
see the tests for examples.
Since this package is outside DefinitelyTyped, the dependency won't be picked up automatically.
There are several ways to add a additional TypeScript type definition dependencies to your TypeScript project:
tsc and tsc-based bundlersIn tsconfig.json:
{
// ...
"compilerOptions": {
// ...
"types": ["@webgpu/types"]
}
}
Or you can use typeRoots:
{
// ...
"compilerOptions": {
// ...
"typeRoots": ["./node_modules/@webgpu/types", "./node_modules/@types"]
}
}
This may work better if your toolchain doesn't read tsconfig.json.
/// <reference types="@webgpu/types" />
If you use Webpack and the options above aren't sufficient (this has not been verified),
you may need the following in webpack.config.js:
"types": ["@webgpu/types"]
Please contribute a PR to add instructions for other setups or improve existing instructions. :)
git submodule update --initgpuweb changes: pushd gpuweb && git checkout main && git pull && popdnpm cicopies.bs contents in place of its include in index.bs (generator doesn't support includes).generated/index.d.ts: npm run generategenerated/index.d.ts and dist/index.d.ts.generated/ and dist/ files are not the same.npm run formatMost or all of these should be fixed in the generator over time.
Array changed to Iterable for WebIDL sequences in argument positions.any changed to object for WebIDL object.| SharedArrayBuffer added for [AllowShared] BufferSource.The following differences are TODO: should be changed in the final result.
The following differences will remain.
onuncapturederror strongly typed.getContext definitions.GPUExtent3DStrict and GPUOrigin2DStrict.(only for people who have npm publish access)
git checkout main && git pull git@github.com:gpuweb/types.git main && git submodule update --init && npm version patch && git push git@github.com:gpuweb/types.git main --tags && npm publishgit checkout maingit pull https://github.com/gpuweb/types.git mainorigin, just make sure you are referring to the right repo)git submodule update --initnpm version patchgit push https://github.com/gpuweb/types.git main --tagsnpm publish --otp=<code><code> with the one-time password from your authenticator, since two-factors authentication is required to publish.npm adduser first and it will guide you through adding the npm account.