typescript - Är det möjligt att utöka en typ som kan vara null?
Jag har en typ jag skulle vilja utöka, men min enda referens till den har den definierad som
type Foo = TypeIamInterestedIn | nullDetta är med strictNullChecks på.
Här är ett tsPlayground-exempel:
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
}
Finns det något sätt att bara välja den icke-null-typen att utöka här?
Svar #1
Du kan använda Exclude för att få null bort därifrån. Exclude är en villkorlig typ som tar bort den andra typparametern från den första typparametern. I det här fallet kan vi ta bort null-typen från unionstypen.
type Test2 = { name: string } | null
interface ExtendedTest2 extends Exclude<Test2, null> {
date: number
}
