UNPKG

cgreact-core

Version:

未发表!CGReact前端Web研发框架核心包

62 lines (53 loc) 4.99 kB
/*CGReact可导入模块声明*/ declare var JSSExport: JSS; declare var StringExport: string; declare module "*.css" {export default StringExport} declare module "*.scss" {export default StringExport} declare module "*.jpg" {export default StringExport} declare module "*.png" {export default StringExport} declare module "*.svg" {export default StringExport} declare module "*.bmp" {export default StringExport} /*CGReactApplication注入的全局方法声明*/ declare interface DateConstructor {fromString(str: string): Date} //原生Date类型增加fromString构造方法 declare interface ObjectConstructor {type(obj: any): "undefined" | "object" | "boolean" | "number" | "string" | "function" | "symbol" | "bigint" | "array"}//原生object注入type检测方法 declare interface Set<T> {addAll(news: T[]): Set<T>} // 原生Set类型增加addAll方法 declare interface FormData {append(name: string, value: string | number | Array<any> | Blob, fileName?: string): FormData;} //修改FormData原生的append方法,增加返回值可以链式调用 declare interface String {hashCode(): number} //string添加计算hash的方法 declare var URI: { new(url: string): URL; //支持new构造 (url: string): URL; //支持直接做函数转化 };//创造一个URI类型用来处理URI的相关操作 declare interface Date//原生Date类型增加相关方法 { isValid(): boolean; getMon(): number; getQuarter(): number; format(formt: string): string; } //给JSX的type增加一个CGReactModuleType语法参数 /* 常用数据类型声明*/ type NamedColor = | "aliceblue" | "antiquewhite" | "aqua" | "aquamarine" | "azure" | "beige" | "bisque" | "black" | "blanchedalmond" | "blue" | "blueviolet" | "brown" | "burlywood" | "cadetblue" | "chartreuse" | "chocolate" | "coral" | "cornflowerblue" | "cornsilk" | "crimson" | "cyan" | "darkblue" | "darkcyan" | "darkgoldenrod" | "darkgray" | "darkgreen" | "darkgrey" | "darkkhaki" | "darkmagenta" | "darkolivegreen" | "darkorange" | "darkorchid" | "darkred" | "darksalmon" | "darkseagreen" | "darkslateblue" | "darkslategray" | "darkslategrey" | "darkturquoise" | "darkviolet" | "deeppink" | "deepskyblue" | "dimgray" | "dimgrey" | "dodgerblue" | "firebrick" | "floralwhite" | "forestgreen" | "fuchsia" | "gainsboro" | "ghostwhite" | "gold" | "goldenrod" | "gray" | "green" | "greenyellow" | "grey" | "honeydew" | "hotpink" | "indianred" | "indigo" | "ivory" | "khaki" | "lavender" | "lavenderblush" | "lawngreen" | "lemonchiffon" | "lightblue" | "lightcoral" | "lightcyan" | "lightgoldenrodyellow" | "lightgray" | "lightgreen" | "lightgrey" | "lightpink" | "lightsalmon" | "lightseagreen" | "lightskyblue" | "lightslategray" | "lightslategrey" | "lightsteelblue" | "lightyellow" | "lime" | "limegreen" | "linen" | "magenta" | "maroon" | "mediumaquamarine" | "mediumblue" | "mediumorchid" | "mediumpurple" | "mediumseagreen" | "mediumslateblue" | "mediumspringgreen" | "mediumturquoise" | "mediumvioletred" | "midnightblue" | "mintcream" | "mistyrose" | "moccasin" | "navajowhite" | "navy" | "oldlace" | "olive" | "olivedrab" | "orange" | "orangered" | "orchid" | "palegoldenrod" | "palegreen" | "paleturquoise" | "palevioletred" | "papayawhip" | "peachpuff" | "peru" | "pink" | "plum" | "powderblue" | "purple" | "rebeccapurple" | "red" | "rosybrown" | "royalblue" | "saddlebrown" | "salmon" | "sandybrown" | "seagreen" | "seashell" | "sienna" | "silver" | "skyblue" | "slateblue" | "slategray" | "slategrey" | "snow" | "springgreen" | "steelblue" | "tan" | "teal" | "thistle" | "tomato" | "transparent" | "turquoise" | "violet" | "wheat" | "white" | "whitesmoke" | "yellow" | "yellowgreen"; /* CGReact数据类型*/ declare type StyleKey = string; //允许用户在代码中自行复写 declare type TableKey = string; //允许用户在代码中自行复写 declare type PageState = { [key: string]: any } //PaageState不想import declare type PageProp = { [key: string]: any } //PaageState不想import declare type CompState = { [key: string]: any } //CompState不想import declare type JSS<KEY extends string = StyleKey> = { [K in KEY]: React.CSSProperties } //JSS样式类型 declare type JSSKeyMap<KEY extends string = StyleKey> = { [K in KEY]: string }// 给元素类型一个JSX的别名 declare interface JSX extends React.ReactElement {type: ((props) => JSX) & { CGReactModuleType: string }} /** lib.es5.d.ts定义的泛型约束函数Readonly没有递归不够彻底,object里嵌套的object不能readonly,我们定义自己的Readonly*/ declare type DeepReadonly<T extends object> = { readonly [key in keyof T]: T[key] extends object ? DeepReadonly<T[key]> : T[key]; } /** 让指定类型中所有的键都变为可选*/ declare type FreeNecessary<T extends object> = { [key in keyof T]?: T[key] } /** 获得类型的构造类型*/ declare type ClassOf<T> = { new(...props: any): T //构造函数返回了T }