总之,是否可以有一个声明某些基属性但不限制其他属性的接口?这是我目前的情况:
我使用的是Flux模式,它定义了一个通用调度器:
class Dispatcher<TPayload> {
dispatch(arg:TPayload):void { }
}
然后,我用自己的有效负载类型创建一个调度程序,如下所示:
interface ActionPayload {
actionType: string
}
const dispatcher = new Dispatcher<ActionPayload>();
现在我有了一些动作代码,它应该分派一个带有一些附加数据的有效负载,但是< code>ActionPayload接口只允许< code>actionType。换句话说,这段代码:
interface SomePayload extends ActionPayload {
someOtherData: any
}
class SomeActions {
doSomething():void {
dispatcher.dispatch({
actionType: "hello",
someOtherData: {}
})
}
}
给出编译错误,因为someOtherData
与ActionPayload
接口不匹配。问题是,许多不同的“动作”类将重用同一个调度器,因此,虽然这里是someOtherData
,但那里可能是anotherKindOfData
,以此类推
我通过创建类似
type Make = "Volvo" | "Polestar" | "Saab";
interface BaseCar {
make: Make;
horsePower: number;
allWheelDrive: boolean;
}
type Car = BaseCar & Record<string, string|number|boolean>;
interface Options {
darkMode?: boolean;
[otherOptions: string]: unknown;
}
如果希望< code>ActionPayload接受任何其他属性,可以添加一个索引器:
interface ActionPayload {
actionType: string;
// Keys can be strings, numbers, or symbols.
// If you know it to be strings only, you can also restrict it to that.
// For the value you can use any or unknown,
// with unknown being the more defensive approach.
[x: string | number | symbol]: unknown;
}
看见https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#strict-对象文字赋值检查
我正试图通过使用< code>allOf来解决这个swagger API继承的问题。这是我的swagger yaml文件。 当我将其粘贴到在线编辑器中时,我收到以下错误,我很难弄清楚。
有些项目可能更倾向于使用非Spring的MVC框架。 许多团队希望仍然使用现有的技术栈,比如JSF等,这样他们掌握的技能和工具依然能发挥作用。 如果你确实不想使用Spring的Web MVC,但又希望能从Spring提供的一些解决方案中受益,那么将你所使用的框架和Spring进行集成也很容易。只需要在ContextLoaderListener中启动一个Spring的根应用上下文(root appl
我对react、react hooks和js/ts非常陌生。 目前,我正在编码一个简单的按钮,它通过useContext获取一个状态,并通过useReucer和调度函数更新该状态。 我试图将我所有的代码分离到特定的文件中。来自减速器的调度函数在提供程序中作为值传递。 当我在使用者组件中调用传递的函数时,我可以给它一个任何类型的值(在我的示例中是数字)给调度器。我在上下文、reducer等中设置了所
我使用的是与node.js快递4.12.3和mysql db招摇过市2.0。 我创建了以下模式- 此处删除的_at字段将为空,并且在删除记录之前不会出现在数据库中。我的基于express的nodejs服务器返回的日期如下- [{id:4,“国家”:“g”,“创建时间”:“2018-01-29T04:51:46.000Z”,“删除时间”:null},{id:5,“国家”:“gaaaf”,“创建时间”
Victor Savkin is a co-founder of nrwl.io, providing Angular consulting to enterprise teams. He was previously on the Angular core team at Google, and built the dependency injection, change detection,
问题内容: 我有一个JPA实体,其属性设置为 但是,当我在JBoss 6上进行部署时,该应用程序会抛出一条错误消息: 我使用Hibernate 3.5作为JPA 2.0实现。 我应该使用什么来引用外键列? 问题答案: 使用代替: