比如
interface A {
type: string;
age: number;
list: {
id:number;
name: string;
sex: number;
}[]
}
我想要把 sex
修改为类型 string
,要怎么修改呢?
比如
interface A {
type: string;
age: number;
list: {
id:number;
name: string;
sex: number;
}[]
}
我想要把 sex
修改为类型 string
,要怎么修改呢?
问题不太清晰,猜测你是想 “类型断言”,可以直接使用 as
语法或者 <>
语法。
比如使用时:
interface A {
type: string;
age: number;
}
const age = '1';
const o: A = { type: 's', age: age as unknown as number };
参考官方文档:https://www.typescriptlang.or...。
如果不是上述,直接再声明一个类型别名覆盖 age
类型即可:
interface A {
type: string;
age: number;
}
type B = Omit<A, 'age'> & { age: string };
interface A {
type: string;
age: number;
list: {
id: number;
name: string;
sex: number;
}[]
}
const aas: Omit<A, 'list'> & { list: Array<{ id: number, name: string, sex: string }> } = {
type: 'asd',
age: 1,
list: [{
id: 11,
name: 'sad',
sex: 'sadsa'
}]
};
type InferArray<T> = T extends (infer U)[] ? U : never;
interface AA extends Omit<A, 'list'> {
list: (Omit< InferArray< A['list']>, 'sex'>)[] & {
sex: string
}[]
}
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
3 回答806 阅读✓ 已解决
upd:
覆盖的话,就比较麻烦了