Scratch no proporciona definiciones de tipo para sus bibliotecas, por lo que escribimos las nuestras.
Este repositorio solo contiene tipos para el tiempo de ejecución y editor de Scratch de Vanilla (LLK). Para los tipos adicionales en los tiempos de ejecución de Turbowarp, consulte @turbowarp/types-tw.
Se puede encontrar una versión posiblemente más legible por humanos de las definiciones de TypeScript en: https://turbowarp.github.io/types/
| Módulo | Estado |
|---|---|
| scratch-vm | ✅ |
| renderizado | ✅ |
| scratch-svg-renderer | ✅ |
| Fuentes de renderizado de rasguño | ✅ |
| Audio de rasguño | ✅ |
| almacenamiento de arañazos | ✅ |
| sencillo | ✅ |
| blocks de rasguño | ? |
| scratch-gui redux | ✅ |
| Redux de pintura de rasguño | ✅ |
| scratch-www redux |
Primero, instale los tipos:
npm install @turbowarp/types
A continuación, debe usar tsconfig.json para configurar TypeScript para saber cómo encontrar los tipos.
{
"compilerOptions" : {
// If you use require() or "module": "CommonJS", remove these lines.
// If you use "module": "ES6", synthetic default imports are required.
"module" : "ES6" ,
"allowSyntheticDefaultImports" : true ,
// Tell TypeScript where to find the types for Scratch libraries.
"paths" : {
"scratch-vm" : [ "./node_modules/@turbowarp/types/index.d.ts" ] ,
"scratch-render" : [ "./node_modules/@turbowarp/types/index.d.ts" ] ,
"scratch-svg-renderer" : [ "./node_modules/@turbowarp/types/index.d.ts" ] ,
"scratch-render-fonts" : [ "./node_modules/@turbowarp/types/index.d.ts" ] ,
"scratch-storage" : [ "./node_modules/@turbowarp/types/index.d.ts" ] ,
"scratch-audio" : [ "./node_modules/@turbowarp/types/index.d.ts" ] ,
"scratch-parser" : [ "./node_modules/@turbowarp/types/index.d.ts" ] ,
"scratch-blocks" : [ "./node_modules/@turbowarp/types/index.d.ts" ]
} ,
// Recommended strictness settings. Change as you please.
"strictNullChecks" : true ,
"noImplicitAny" : true ,
"noImplicitThis" : true
}
}Luego en su JavaScript o TypeScript:
import VM from 'scratch-vm' ;
const vm = new VM ( ) ;
vm . loadProject ( /* read a project somehow */ new ArrayBuffer ( 100 ) )
. then ( ( ) => {
vm . start ( ) ;
vm . greenFlag ( ) ;
} ) ;O si todavía usa necesar ()::
const VM = require ( 'scratch-vm' ) ;
const vm = new VM ( ) ;
vm . loadProject ( /* read a project somehow */ new ArrayBuffer ( 100 ) )
. then ( ( ) => {
vm . start ( ) ;
vm . greenFlag ( ) ;
} ) ; Hay algunas pruebas en la carpeta tests . Estos archivos nunca se ejecutan en realidad, pero el código se comprobará.
Las definiciones de tipo y el código de prueba tienen licencia bajo la licencia Apache 2.0.
Las bibliotecas que se documentan pueden estar bajo diferentes licencias.