То, что вы просите, невозможно. Когда вы определяете тип в интерфейсе как требуется (то есть он не имеет ?
), это означает, что он должен быть определен:
type SpriteProps = {
sprites: {}
name: string
loading: boolean
}
// This is incorrect
// SpriteProps is saying all properties are required
// But right now `prop.name` for example is not
const prop: SpriteProps = {};
Если вы должны заполнить вещи после того, как определили тип, Вы должны сделать поля необязательными. Вы можете сделать одно из двух:
type SpriteProps = {
sprites?: {}
name?: string
loading?: boolean
}
// This is fine now
const prop: SpriteProps = {};
или
type SpriteProps = {
sprites: {}
name: string
loading: boolean
}
// This is fine now
const prop: Partial<SpriteProps> = {};
Другой вариант - создать объект с пустыми значениями для этих полей:
type SpriteProps = {
sprites: {}
name: string
loading: boolean
}
// This is fine now
const prop: Partial<SpriteProps> = {
sprites: {},
name: '',
loading: true,
};