mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
feat: add @types/rax (#43338)
* feat: add @types/rax * fix: entry * fix: package name * fix: header * fix: tsconfig * fix: deps * fix: deps * chore: name * fix: tsconfig * fix: header * fix: header * fix: header * fix: tslint * fix: tslint * fix: tslint * fix: tslint
This commit is contained in:
parent
2256b629f3
commit
c26df8232d
130
types/rax/README.md
Normal file
130
types/rax/README.md
Normal file
@ -0,0 +1,130 @@
|
||||
# @types/rax [](https://www.npmjs.com/package/@types/rax)
|
||||
|
||||
# Installation
|
||||
```
|
||||
npm install --save @types/rax
|
||||
```
|
||||
|
||||
# Config
|
||||
|
||||
Add `node_modules/@types/rax` to your tsconifg.json file, like so:
|
||||
```json
|
||||
{
|
||||
"compilerOptions": {
|
||||
"typeRoots": [
|
||||
"types",
|
||||
],
|
||||
"paths": {
|
||||
"rax": ["node_modules/@types/rax"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# Usage
|
||||
|
||||
## Hooks
|
||||
|
||||
```tsx
|
||||
import * as Rax from 'rax';
|
||||
|
||||
const createElement = Rax.createElement;
|
||||
|
||||
// FunctionComponent
|
||||
interface PersonProps {
|
||||
name: string;
|
||||
age: number;
|
||||
}
|
||||
const Person: Rax.FunctionComponent<PersonProps> = (props) => {
|
||||
return (
|
||||
<text>
|
||||
hello! I'm {props.name} and I'm {props.age} years old!
|
||||
</text>
|
||||
);
|
||||
};
|
||||
|
||||
// FunctionComponent With Ref
|
||||
export interface FancyButtonProps {
|
||||
onClick: () => void;
|
||||
children?: Rax.RaxNode;
|
||||
}
|
||||
export interface FancyButton {
|
||||
getClickCount(): number;
|
||||
}
|
||||
export const FancyButton = Rax.forwardRef((props: FancyButtonProps, ref: Rax.Ref<FancyButton>) => {
|
||||
const [count, setCount] = Rax.useState(0);
|
||||
|
||||
Rax.useImperativeHandle(ref, () => ({
|
||||
getClickCount() {
|
||||
return count;
|
||||
}
|
||||
}));
|
||||
|
||||
return (
|
||||
<div
|
||||
onClick={() => {
|
||||
setCount(count + 1);
|
||||
props.onClick();
|
||||
}}
|
||||
>
|
||||
{props.children}
|
||||
</div>
|
||||
);
|
||||
});
|
||||
|
||||
interface AppState {
|
||||
name: string;
|
||||
age: number;
|
||||
}
|
||||
|
||||
type AppActions = { type: 'getOlder' } | { type: 'resetAge' };
|
||||
|
||||
function reducer(s: AppState, action: AppActions): AppState {
|
||||
switch (action.type) {
|
||||
case 'getOlder':
|
||||
return { ...s, age: s.age + 1 };
|
||||
case 'resetAge':
|
||||
return { ...s, age: 0 };
|
||||
}
|
||||
}
|
||||
|
||||
const initialState = {
|
||||
name: 'Rax',
|
||||
age: 18
|
||||
};
|
||||
|
||||
export function App() {
|
||||
const [state, dispatch] = Rax.useReducer(reducer, initialState);
|
||||
const birthdayRef = Rax.useRef<FancyButton>(null);
|
||||
|
||||
Rax.useLayoutEffect(() => {
|
||||
if (birthdayRef.current !== null) {
|
||||
birthdayRef.current.getClickCount();
|
||||
} else {
|
||||
// this looks redundant but it ensures the type actually has "null" in it instead of "never"
|
||||
// $ExpectType null
|
||||
console.log(birthdayRef.current);
|
||||
}
|
||||
});
|
||||
|
||||
return (
|
||||
<Rax.Fragment>
|
||||
<Person {...state} />
|
||||
<FancyButton
|
||||
onClick={() => {
|
||||
if (birthdayRef.current !== null) {
|
||||
console.log(birthdayRef.current.getClickCount());
|
||||
}
|
||||
dispatch({ type: 'getOlder' });
|
||||
}}
|
||||
ref={birthdayRef}
|
||||
>
|
||||
Birthday time!
|
||||
</FancyButton>
|
||||
<FancyButton onClick={() => dispatch({ type: 'resetAge' })}>Let's start over.</FancyButton>
|
||||
</Rax.Fragment>
|
||||
);
|
||||
}
|
||||
|
||||
export default App;
|
||||
```
|
||||
145
types/rax/global.d.ts
vendored
Normal file
145
types/rax/global.d.ts
vendored
Normal file
@ -0,0 +1,145 @@
|
||||
/*
|
||||
Warning: all of these interfaces are empty. If you want type definitions for various properties
|
||||
(such as HTMLInputElement.prototype.value), you need to add `--lib DOM` (via command line or tsconfig.json).
|
||||
*/
|
||||
|
||||
interface Event { }
|
||||
interface AnimationEvent extends Event { }
|
||||
interface ClipboardEvent extends Event { }
|
||||
interface CompositionEvent extends Event { }
|
||||
interface DragEvent extends Event { }
|
||||
interface FocusEvent extends Event { }
|
||||
interface KeyboardEvent extends Event { }
|
||||
interface MouseEvent extends Event { }
|
||||
interface TouchEvent extends Event { }
|
||||
interface PointerEvent extends Event { }
|
||||
interface TransitionEvent extends Event { }
|
||||
interface UIEvent extends Event { }
|
||||
interface WheelEvent extends Event { }
|
||||
|
||||
interface EventTarget { }
|
||||
interface Document { }
|
||||
interface DataTransfer { }
|
||||
interface StyleMedia { }
|
||||
|
||||
interface Element { }
|
||||
|
||||
interface HTMLElement extends Element { }
|
||||
interface HTMLAnchorElement extends HTMLElement { }
|
||||
interface HTMLAreaElement extends HTMLElement { }
|
||||
interface HTMLAudioElement extends HTMLElement { }
|
||||
interface HTMLBaseElement extends HTMLElement { }
|
||||
interface HTMLBodyElement extends HTMLElement { }
|
||||
interface HTMLBRElement extends HTMLElement { }
|
||||
interface HTMLButtonElement extends HTMLElement { }
|
||||
interface HTMLCanvasElement extends HTMLElement { }
|
||||
interface HTMLDataElement extends HTMLElement { }
|
||||
interface HTMLDataListElement extends HTMLElement { }
|
||||
interface HTMLDialogElement extends HTMLElement { }
|
||||
interface HTMLDivElement extends HTMLElement { }
|
||||
interface HTMLDListElement extends HTMLElement { }
|
||||
interface HTMLEmbedElement extends HTMLElement { }
|
||||
interface HTMLFieldSetElement extends HTMLElement { }
|
||||
interface HTMLFormElement extends HTMLElement { }
|
||||
interface HTMLHeadingElement extends HTMLElement { }
|
||||
interface HTMLHeadElement extends HTMLElement { }
|
||||
interface HTMLHRElement extends HTMLElement { }
|
||||
interface HTMLHtmlElement extends HTMLElement { }
|
||||
interface HTMLIFrameElement extends HTMLElement { }
|
||||
interface HTMLImageElement extends HTMLElement { }
|
||||
interface HTMLInputElement extends HTMLElement { }
|
||||
interface HTMLModElement extends HTMLElement { }
|
||||
interface HTMLLabelElement extends HTMLElement { }
|
||||
interface HTMLLegendElement extends HTMLElement { }
|
||||
interface HTMLLIElement extends HTMLElement { }
|
||||
interface HTMLLinkElement extends HTMLElement { }
|
||||
interface HTMLMapElement extends HTMLElement { }
|
||||
interface HTMLMetaElement extends HTMLElement { }
|
||||
interface HTMLObjectElement extends HTMLElement { }
|
||||
interface HTMLOListElement extends HTMLElement { }
|
||||
interface HTMLOptGroupElement extends HTMLElement { }
|
||||
interface HTMLOptionElement extends HTMLElement { }
|
||||
interface HTMLParagraphElement extends HTMLElement { }
|
||||
interface HTMLParamElement extends HTMLElement { }
|
||||
interface HTMLPreElement extends HTMLElement { }
|
||||
interface HTMLProgressElement extends HTMLElement { }
|
||||
interface HTMLQuoteElement extends HTMLElement { }
|
||||
interface HTMLScriptElement extends HTMLElement { }
|
||||
interface HTMLSelectElement extends HTMLElement { }
|
||||
interface HTMLSourceElement extends HTMLElement { }
|
||||
interface HTMLSpanElement extends HTMLElement { }
|
||||
interface HTMLStyleElement extends HTMLElement { }
|
||||
interface HTMLTableElement extends HTMLElement { }
|
||||
interface HTMLTableColElement extends HTMLElement { }
|
||||
interface HTMLTableDataCellElement extends HTMLElement { }
|
||||
interface HTMLTableHeaderCellElement extends HTMLElement { }
|
||||
interface HTMLTableRowElement extends HTMLElement { }
|
||||
interface HTMLTableSectionElement extends HTMLElement { }
|
||||
interface HTMLTemplateElement extends HTMLElement { }
|
||||
interface HTMLTextAreaElement extends HTMLElement { }
|
||||
interface HTMLTitleElement extends HTMLElement { }
|
||||
interface HTMLTrackElement extends HTMLElement { }
|
||||
interface HTMLUListElement extends HTMLElement { }
|
||||
interface HTMLVideoElement extends HTMLElement { }
|
||||
interface HTMLWebViewElement extends HTMLElement { }
|
||||
|
||||
interface SVGElement extends Element { }
|
||||
interface SVGSVGElement extends SVGElement { }
|
||||
interface SVGCircleElement extends SVGElement { }
|
||||
interface SVGClipPathElement extends SVGElement { }
|
||||
interface SVGDefsElement extends SVGElement { }
|
||||
interface SVGDescElement extends SVGElement { }
|
||||
interface SVGEllipseElement extends SVGElement { }
|
||||
interface SVGFEBlendElement extends SVGElement { }
|
||||
interface SVGFEColorMatrixElement extends SVGElement { }
|
||||
interface SVGFEComponentTransferElement extends SVGElement { }
|
||||
interface SVGFECompositeElement extends SVGElement { }
|
||||
interface SVGFEConvolveMatrixElement extends SVGElement { }
|
||||
interface SVGFEDiffuseLightingElement extends SVGElement { }
|
||||
interface SVGFEDisplacementMapElement extends SVGElement { }
|
||||
interface SVGFEDistantLightElement extends SVGElement { }
|
||||
interface SVGFEDropShadowElement extends SVGElement { }
|
||||
interface SVGFEFloodElement extends SVGElement { }
|
||||
interface SVGFEFuncAElement extends SVGElement { }
|
||||
interface SVGFEFuncBElement extends SVGElement { }
|
||||
interface SVGFEFuncGElement extends SVGElement { }
|
||||
interface SVGFEFuncRElement extends SVGElement { }
|
||||
interface SVGFEGaussianBlurElement extends SVGElement { }
|
||||
interface SVGFEImageElement extends SVGElement { }
|
||||
interface SVGFEMergeElement extends SVGElement { }
|
||||
interface SVGFEMergeNodeElement extends SVGElement { }
|
||||
interface SVGFEMorphologyElement extends SVGElement { }
|
||||
interface SVGFEOffsetElement extends SVGElement { }
|
||||
interface SVGFEPointLightElement extends SVGElement { }
|
||||
interface SVGFESpecularLightingElement extends SVGElement { }
|
||||
interface SVGFESpotLightElement extends SVGElement { }
|
||||
interface SVGFETileElement extends SVGElement { }
|
||||
interface SVGFETurbulenceElement extends SVGElement { }
|
||||
interface SVGFilterElement extends SVGElement { }
|
||||
interface SVGForeignObjectElement extends SVGElement { }
|
||||
interface SVGGElement extends SVGElement { }
|
||||
interface SVGImageElement extends SVGElement { }
|
||||
interface SVGLineElement extends SVGElement { }
|
||||
interface SVGLinearGradientElement extends SVGElement { }
|
||||
interface SVGMarkerElement extends SVGElement { }
|
||||
interface SVGMaskElement extends SVGElement { }
|
||||
interface SVGMetadataElement extends SVGElement { }
|
||||
interface SVGPathElement extends SVGElement { }
|
||||
interface SVGPatternElement extends SVGElement { }
|
||||
interface SVGPolygonElement extends SVGElement { }
|
||||
interface SVGPolylineElement extends SVGElement { }
|
||||
interface SVGRadialGradientElement extends SVGElement { }
|
||||
interface SVGRectElement extends SVGElement { }
|
||||
interface SVGStopElement extends SVGElement { }
|
||||
interface SVGSwitchElement extends SVGElement { }
|
||||
interface SVGSymbolElement extends SVGElement { }
|
||||
interface SVGTextElement extends SVGElement { }
|
||||
interface SVGTextPathElement extends SVGElement { }
|
||||
interface SVGTSpanElement extends SVGElement { }
|
||||
interface SVGUseElement extends SVGElement { }
|
||||
interface SVGViewElement extends SVGElement { }
|
||||
|
||||
interface Text { }
|
||||
interface TouchList { }
|
||||
interface WebGLRenderingContext { }
|
||||
interface WebGL2RenderingContext { }
|
||||
2942
types/rax/index.d.ts
vendored
Normal file
2942
types/rax/index.d.ts
vendored
Normal file
File diff suppressed because it is too large
Load Diff
6
types/rax/package.json
Normal file
6
types/rax/package.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"csstype": "^2.2.0"
|
||||
}
|
||||
}
|
||||
23
types/rax/tsconfig.json
Normal file
23
types/rax/tsconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"jsx": "preserve"
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts"
|
||||
]
|
||||
}
|
||||
11
types/rax/tslint.json
Normal file
11
types/rax/tslint.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json",
|
||||
"rules": {
|
||||
"dt-header": false,
|
||||
"no-empty-interface": false,
|
||||
"no-object-literal-type-assertion": false,
|
||||
"no-unnecessary-generics": false,
|
||||
"strict-export-declare-modifiers": false,
|
||||
"void-return": false
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user