typescript - 是否可以扩展可能为 Null 的类型?

标签 typescript typescript2.0

我有一个想要扩展的类型,但是我对它的唯一引用将其定义为

类型 Foo = TypeIamInterestedIn |空

这是启用了 strictNullChecks 的情况。

这是一个tsPlayground示例:

type Test1 = { name: string }
type Test2 = { name: string } | null

interface ExtendedTest1 extends Test1 {
    date: number
}

interface ExtendedTest2 extends Test2 { // type error an interface may only extend a class or another interface
    date: number
}

有没有办法只选择非空类型来扩展这里?

最佳答案

您可以使用排除从那里获取nullExclude 是一个条件类型,它将从第一个类型参数中删除第二个类型参数。在这种情况下,我们可以从联合类型中删除 null 类型。

type Test2 = { name: string } | null

interface ExtendedTest2 extends Exclude<Test2, null> { 
    date: number
}

关于typescript - 是否可以扩展可能为 Null 的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52330842/

相关文章:

javascript - 如何在单击按钮 angular2 时复制输入字段

typescript - 在 TypeScript 中使用 is 运算符的原因是什么?

node.js - 如何使用Webpack 2 Raw-Loader读取文件

javascript - 如何使用展开运算符从对象数组中删除重复项

reactjs - 在命名空间 Typescript 项目中使用 NPM 模块

reactjs - 如何处理 React 中的多个复选框?

javascript - 处理 400 后运行时错误

javascript - TypeScript:如何确保功能组件的两个 Prop (数组)具有相同的长度?

node.js - Node fs.writeFileSync() 永远不会返回

TypeScript 分布式条件类型 - 附加类型参数约束