@polyzone/core
Version:
PolyZone core API
34 lines (33 loc) • 913 B
TypeScript
export * from './Vector2';
export * from './Vector3';
export * from './Color3';
export * from './Color4';
export * from './Quaternion';
import { Vector2 } from './Vector2';
import { Vector3 } from './Vector3';
export type AnyVector = Vector2 | Vector3;
/**
* A reference to a class, for passing class types by reference.
* @example
* ```typescript
* class MyComponent extends Component {
* public name: string;
* public constructor(name: string) {
* super();
* this.name = name;
* }
* }
*
* function getComponent<TComponent extends Component>(componentCtor: ClassReference<TComponent>) {
* for (let component of components) {
* if (component instanceof componentCtor) {
* return component;
* }
* }
* return undefined;
* }
*
* getComponent(MyComponent);
* ```
*/
export type ClassReference<TClass> = abstract new (...args: any[]) => TClass;