//主键自动生成列类型,主要为整型、小数等数值类型
export type PrimaryGeneratedColumnType = "int" // mysql, mssql, oracle, sqlite
|"int2" // postgres, sqlite
|"int2" // postgres, sqlite
|"int4" // postgres
|"int8" // postgres, sqlite
|"integer" // postgres, oracle, sqlite
|"tinyint" // mysql, mssql, sqlite
|"smallint" // mysql, postgres, mssql, oracle, sqlite
|"mediumint" // mysql, sqlite
|"bigint" // mysql, postgres, mssql, sqlite
|"dec" // oracle, mssql
|"decimal" // mysql, postgres, mssql, sqlite
|"numeric" // postgres, mssql, sqlite
|"number"; // oracle
//带有精度的列类型,主要为各种浮点数、小数类型
export type WithPrecisionColumnType = "float" // mysql, mssql, oracle, sqlite
|"double" // mysql, sqlite
|"dec" // oracle, mssql
|"decimal" // mysql, postgres, mssql, sqlite
|"numeric" // postgres, mssql, sqlite
|"real" // mysql, postgres, mssql, oracle, sqlite
|"double precision" // postgres, oracle, sqlite
|"number" // oracle
|"datetime" // mssql, mysql, sqlite
|"datetime2" // mssql
|"datetimeoffset" // mssql
|"time" // mysql, postgres, mssql
|"time with time zone" // postgres
|"time without time zone" // postgres
|"timestamp" // mysql, postgres, mssql, oracle
|"timestamp without time zone" // postgres
|"timestamp with time zone"; // postgres, oracle
//带有长度的列类型,
export type WithLengthColumnType = "int" // mysql, postgres, mssql, oracle, sqlite
|"tinyint" // mysql, mssql, sqlite
|"smallint" // mysql, postgres, mssql, oracle, sqlite
|"mediumint" // mysql, sqlite
|"bigint" // mysql, postgres, mssql, sqlite
|"character varying" // postgres
|"varying character" // sqlite
|"nvarchar" // mssql
|"character" // mysql, postgres, sqlite
|"native character" // sqlite
|"varchar" // mysql, postgres, mssql, sqlite
|"char" // mysql, postgres, mssql, oracle
|"nchar" // mssql, oracle, sqlite
|"varchar2" // oracle
|"nvarchar2" // oracle, sqlite
|"binary" // mssql
|"varbinary"; // mssql
//简单列类型
export type SimpleColumnType =
//简单数组,为typeorm特有,对饮数据库中string类型
"simple-array" // typeorm-specific, automatically mapped to string
//string类型,对应数据库中varchar类型
|"string" // typeorm-specific, automatically mapped to varchar depend on platform
//数值类型
|"bit" // mssql
|"int2" // postgres, sqlite
|"integer" // postgres, oracle, sqlite
|"int4" // postgres
|"int8" // postgres, sqlite
|"unsigned big int" // sqlite
|"float4" // postgres
|"float8" // postgres
|"smallmoney" // mssql
|"money" // postgres, mssql
//boolean类型
|"boolean" // postgres, sqlite
|"bool" // postgres
//二进制、文本类型
|"tinyblob" // mysql
|"tinytext" // mysql
|"mediumblob" // mysql
|"mediumtext" // mysql
|"blob" // mysql, oracle, sqlite
|"text" // mysql, postgres, mssql, sqlite
|"ntext" // mssql
|"citext" // postgres
|"longblob" // mysql
|"longtext" // mysql
|"bytea" // postgres
|"long" // oracle
|"raw" // oracle
|"long raw" // oracle
|"bfile" // oracle
|"clob" // oracle, sqlite
|"nclob" // oracle
|"image" // mssql
//日期类型
|"timestamp with local time zone" // oracle
|"smalldatetime" // mssql
|"date" // mysql, postgres, mssql, oracle, sqlite
|"interval year" // oracle
|"interval day" // oracle
|"interval" // postgres
|"year" // mysql
//几何类型,只有postgres支持
|"point" // postgres
|"line" // postgres
|"lseg" // postgres
|"box" // postgres
|"circle" // postgres
|"path" // postgres
|"polygon" // postgres
// other types
|"enum" // mysql, postgres
|"cidr" // postgres
|"inet" // postgres
|"macaddr"// postgres
|"bit" // postgres
|"bit varying" // postgres
|"varbit"// postgres
|"tsvector" // postgres
|"tsquery" // postgres
|"uuid" // postgres
|"xml" // mssql, postgres
|"json" // mysql, postgres
|"jsonb" // postgres
|"varbinary" // mssql
|"cursor" // mssql
|"hierarchyid" // mssql
|"sql_variant" // mssql
|"table" // mssql
|"rowid" // oracle
|"urowid" // oracle
|"uniqueidentifier"; // mssql
//列数据类型,为联合类型,各个类型之间可能有重复
export type ColumnType =
//带有精度类型
WithPrecisionColumnType
//带有长度类型
|WithLengthColumnType
//简单类型
|SimpleColumnType
//boolean类型
|BooleanConstructor
//Date类型
|DateConstructor
//数字类型
|NumberConstructor
//字符串类型
|StringConstructor;
可以看到,联合类ColumnType为联合类型,联合了带有长度类型、带有精度类型、简单类型等,这些类型之间有重复部分,主要是为了区分装饰器参数类型
需要关注的只有一个simple-array类型,为typeorm特有类型,即实体属性可以为数组,存储到数据库中为逗号分隔的字符串