当前位置: 首页 > 知识库问答 >
问题:

javascript - typescript 如何给Class中所有参数加上可选?

吴峰
2023-10-31
class A = {  a: numebr = 0;  b: string = 'aa';}class B extends A{  c:string = "2312"}

B继承A的时候是否可以将A中的参数快捷设置为可选?

使用type中的Partial<Type>方法不适用于Class

共有2个答案

葛承德
2023-10-31
class A {  a: number = 0;  b: string = 'aa';}class B extends ({} as new () => Partial<A>) {  c: string = "2312"}

参考:StackOverflow - Typescript class extending Partial interface

朱宜
2023-10-31
class A {    a: number = 0;    b: string = 'aa';}interface AProps {    a?: number;    b?: string;}class B extends A {    c: string = "2312";    constructor(props?: AProps) {        super();        if (props) {            if (props.a !== undefined) this.a = props.a;            if (props.b !== undefined) this.b = props.b;        }    }}const obj = new B({ a: 5 });console.log(obj.a);  // 5console.log(obj.b);  // 'aa'console.log(obj.c);  // '2312'
 类似资料:
  • 我在项目中定义了两个 interface , 接下有个函数是处理这两个类型的 我自己想到了用 js 的 is 关键词去判断某个属性是否存在来具体区分这两个 interface ,但是这样好像已经到了 js 的层面了。 问题:在 TS 层面有没有可以实现的方式呢?

  • 我想编写一个函数,它接受一个对象参数,在函数签名中使用解构,并且该参数是可选的: 但是,TypeScript不允许我(绑定模式参数在实现签名中不能是可选的。)。 如果我不破坏结构,我当然可以做到: 看起来这些应该是一样的,但是上面的例子是不允许的。 我想使用一个去结构化的语法(1)因为它存在,并且是一个很好的语法,并且上面的两个函数应该表现相同似乎是很自然的,并且(2)因为我还想要一个简洁的方法来

  • 如果我有数字,从,其中数字在两者之间缺失,那么我如何计算所有可能的数字,可以从这些数字的加法中形成(2/3/4/5/6...)。 例如,假设我有数字,即缺少和。现在,我可以形成 这是我需要找出的,这是我无法使用给定数字组合形成的1中的第一个数字。一个简单的逻辑就可以了。谢谢!

  • 问题内容: 我有一个页面,显示了当地咖啡馆的列表。当用户单击某个咖啡馆时,将显示一个模态对话框,该对话框已预先填写了“咖啡馆名称”。该页面包含许多咖啡馆名称,并且表单应包含他单击的“咖啡馆名称”。 以下是使用链接按钮以文本形式生成的咖啡馆名称的列表 这是模态形式 问题是如何将实际值传递给模式形式的“值”属性? 表单“显示”事件由“ onlick”事件触发 问题答案: 你可以这样: 然后使用jQue

  • 我想通过包装C 11中的std::thread类来使用我自己的Thread实现,这样我就可以像我想要的那样处理异常。 这是我的包装类: 如果没有争论,它的效果相当不错: …但如果我尝试传递可变参数: ...我在编译时收到一个错误: buildroot-2014.02/output/host/usr/i586-buildroot-linux-uclibc/include/c /4.8.2/funct

  • 我使用带有TypeScript的react router v5.1,并具有以下路由配置: 我尝试访问组件中的url参数(TokenName),使用useParams挂钩,如下所示: 然而,typescript认为参数可以是未定义的: 这是没有意义的,因为如果URL中缺少参数,则react router将不匹配此路由。 在这种情况下,我如何修改打字?