使用打字稿3,我使用的是DefinitelyTyped中的定义,但我需要编辑类型别名。我正在使用@ types / json-schema作为易于使用的TS定义。但是,由于我要添加自定义架构类型,因此当我拥有的类型不是已定义类型之一时,显然会抱怨。例如,我有以下架构:
{
properties: {
foo: { type: 'myCustomFormat' }
},
required: [
'foo'
],
type: 'object'
}
当然,myCustomFormat
不是有效的json模式类型。 @ types / json-schema通过以下方式定义这些类型:
export type JSONSchema4TypeName = 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array' | 'null' | 'any'
由于@ types / json-schema显然在其定义中进一步使用了JSONSchema4TypeName
,因此有没有办法在我自己的类型定义中修改该类型别名并更新JSONSchema4TypeName
的所有用法?所以就像我想做的:
import { JSONSchema4TypeName } from 'json-schema';
export type JSONSchema4TypeName = JSONSchema4TypeName | 'myCustomFormat';
我能做的最接近的是这样:
import { JSONSchema4, JSONSchema4TypeName } from 'json-schema';
export type JSONSchema4TypeName = JSONSchema4TypeName | 'uuid';
export interface JSONSchema4 {
type?: JSONSchema4TypeName | JSONSchema4TypeName[];
}
然后我从我的定义而不是json-schema中导入JSONSchema4
,这似乎在增加技术负担,所以想知道是否有更好的方法。