如何在打字稿中导入嵌套接口
How to import nested interfaces in typescript
当我导入嵌套界面时,Typescript VS 代码中的 predicatext 向我显示高级界面中的项目,而不是嵌套界面中的项目。
“示例”界面中有一个 [key:string] 这是否意味着我不能将 predicatext 用于此类数据结构(即使它会检查类型安全),或者它只是不能正常工作我设置错了。
例子
export interface Item {
id: number;
size: number;
}
export interface Example {
name: string;
items: {
[key: string]: Item
};
}
然后文件 2
import {Example, Item} from '../utils/interfaces'
const obj = {
name: "test",
items: {
"a": {
id: 1,
size: 10
},
"b": {
id: 2,
size: 34
}
}
}
结果
预测文本适用于第一级界面,但不适用于此后例如
console.log(obj. // predictatext offers two options: items & names
console.log(obj.items. // predictatext offers : NOTHING
问题不在于嵌套接口。以下内容也不会自动完成:
interface Example {
[key: string]: number
}
它不能自动完成,因为密钥可以是任何东西。同样,obj.items.
之后的任何内容都是有效的。
如果只允许某些项目,您必须在界面中指定它们。
当我导入嵌套界面时,Typescript VS 代码中的 predicatext 向我显示高级界面中的项目,而不是嵌套界面中的项目。
“示例”界面中有一个 [key:string] 这是否意味着我不能将 predicatext 用于此类数据结构(即使它会检查类型安全),或者它只是不能正常工作我设置错了。
例子
export interface Item {
id: number;
size: number;
}
export interface Example {
name: string;
items: {
[key: string]: Item
};
}
然后文件 2
import {Example, Item} from '../utils/interfaces'
const obj = {
name: "test",
items: {
"a": {
id: 1,
size: 10
},
"b": {
id: 2,
size: 34
}
}
}
结果
预测文本适用于第一级界面,但不适用于此后例如
console.log(obj. // predictatext offers two options: items & names
console.log(obj.items. // predictatext offers : NOTHING
问题不在于嵌套接口。以下内容也不会自动完成:
interface Example {
[key: string]: number
}
它不能自动完成,因为密钥可以是任何东西。同样,obj.items.
之后的任何内容都是有效的。
如果只允许某些项目,您必须在界面中指定它们。