Created
August 17, 2021 19:19
-
-
Save YouMinTW/f4616b4b81f441f31b41ed3144e28233 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type UserEmail = NonNullable<UserEmailInput>; | |
// 等於 (將 Type Alias 型別化名拆開) | |
type UserEmail = NonNullable<string | null | undefined>; | |
// 等於 (將 union 聯集 各自拆開) | |
type UserEmail = | |
| NonNullable<string> | |
| NonNullable<null> | |
| NonNullable<undefined>; | |
// 等於 (將 NonNullable 回寫成原本的定義) | |
type UserEmail = | |
| (string extends null | undefined ? never : string) | |
| (null extends null | undefined ? never : null) | |
| (undefined extends null | undefined ? never : undefined); | |
// 等於 | |
type UserEmail = string | never | never ; | |
// 等於 (never 是所有 type 的 subtype,所以聯集時可以省略) | |
type UserEmail = string; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment