我刚接触TS,有一个问题:
假设我有以下内容:
interface FolderInterface {
name: string;
source: {
type: 'usb'
},
// many more properties
}
class FolderImpl {
folder: FolderInterface
}
我有一个名为 *folderImpl * 的 *FolderImpl * 示例。
我想做的是,如果调用 folderImpl.name,它会自动调用 folderImpl.folder.name。
我猜一种方法是复制属性,但有比这更好的方法吗?
谢谢你的帮助。
2条答案
按热度按时间oxiaedzo1#
在Typescript中,implements子句可用于验证类是否符合特定接口
这不是你正在做的,如果你的类
FolderImpl
有一个FolderInterface
类型的属性,它不需要实现任何其他的类。是否有一种方法可以自动将所有内容Map到文件夹上的相应字段
如果你想声明一个类型为
FolderImpl
的常量,你不需要Map任何东西,你可以这样做:你可以这样访问你的属性:
js4nwp542#
看起来你想要的东西也可以简单地通过继承来实现,继承是javascript的本机属性。你可以创建一个“父”类,其属性可以在它的所有“子”类之间共享。
您的父类:
现在将这个类扩展到实现的“子”类:
注意
super
调用,它允许你设置父类的属性,而不用在子类中声明它们。