Typescript 映射接口属性的正确类型
我正在开发的模块(module1)中有以下接口类型Typescript 映射接口属性的正确类型,typescript,typescript-typings,react-typescript,Typescript,Typescript Typings,React Typescript,我正在开发的模块(module1)中有以下接口类型 接口模块内部接口{ 关键一:用户界面; 按键二:自定义界面; 键三:自定义界面; } 因此,我目前正在开发第二个模块(module2),它使用上述接口作为其组件中的道具。上面的接口不是从模块(module1)导出的,因此我无法导入它(module2)。我声明了另一个接口,它可以表示第二个模块(module2)中的类型。下面是界面 导出接口模块接口{ //这是一个正在接受模块一接口的模块 模块2关键一:记录; 模块2键2:字符串; } 但这会
接口模块内部接口{
关键一:用户界面;
按键二:自定义界面;
键三:自定义界面;
}
因此,我目前正在开发第二个模块(module2),它使用上述接口作为其组件中的道具。上面的接口不是从模块(module1)导出的,因此我无法导入它(module2)。我声明了另一个接口,它可以表示第二个模块(module2)中的类型。下面是界面
导出接口模块接口{
//这是一个正在接受模块一接口的模块
模块2关键一:记录;
模块2键2:字符串;
}
但这会引发以下错误
TS2345: Argument of type 'ModuleOneInterface' is not assignable to parameter
of type 'Record<string, customInterface>'.
任何帮助都将不胜感激。
类型
和接口
在大多数情况下是可互换的,但并不总是可互换的
没有索引签名的接口不会扩展带有索引签名的任何内容,因此不可分配给它。另一方面,类型别名扩展了具有索引签名的任何目标类型(使用
类型
或接口
),当且仅当其所有属性都符合索引签名时。即,如果索引签名是从string
到Foo
,则其所有属性必须能够扩展Foo
这里有一个最简单的例子:你能提供at吗?如果另一个外部模块已经在使用
模块接口
,这似乎是一个很好的导出它的动机,不是吗?包很少省略类型,通常甚至是私有/内部类型,因为类型系统的全部目的是使使用模块进行开发更加容易。