typescript - 创建具有接口(interface) A 和接口(interface) B 的所有属性的类型

标签 typescript

我希望 myValue 的类型为 interface Ainterface B

interface interfaceA {
  commonProp: any;
  specificToA: any;
}

interface interfaceB {
  commonProp: any;
  specificToB: any;
}


let myValue: interfaceA | interfaceB;

myValue.interfaceA // doesn't work, I only have access to commonProp

如何让 myValue 访问 specificToAspecificToB

最佳答案

您可能想使用 type guards .

function isA(arg: any): arg is interfaceA
{
    return 'specificToA' in arg;
}

if (isA(myValue))
{// Here typescript will know you are dealing with interfaceA
    let v = myValue.specificToA;
}

关于typescript - 创建具有接口(interface) A 和接口(interface) B 的所有属性的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44156844/

相关文章:

javascript - 如何在 Typescript 中扩展这两个类

reactjs - 用 typescript react forwardRef

angular - 如何在不重复存储对象的情况下在多个状态模型之间进行交互 - NGXS

reactjs - Webpack 和 React 的意外 token

javascript - 如何将 NPM 安装的 socket.io 与 TypeScript 和 webpack 结合使用?

javascript - typescript 路由错误 - 没有与此调用匹配的过载

javascript - Intellij "Find usages"不适用于 Lerna 软件包

Angular 2模板作为组件的参数

typescript - 在 TypeScript 中,使第二个参数自动完成取决于第一个参数中的字符串

angular - 在 Angular 4 的 canactivate guard 中返回 observable inside observable